什么是替换Sql Char(13)并且在实体框架中是什么?

时间:2014-01-01 14:59:48

标签: c# sql entity-framework

我是Entity框架的新手,任何机构都可以告诉我如何将以下查询编写到Entity框架中。

select column1 + char(13) +isnull(column2,space(1))+char(13)+isnull(column3,space(1))+char(13)+isnull(column4,space(1)) +char(13)+isnull(olumn5,space(1)) as FADRS
FROM table

将上述查询转换为Entity Framework。

通过使用Jon回答我得到了答案。知道我的问题是如何使用iqueryable

            IQuer<string> Madr = from b in context.table
                       where b.column1 == txtaddrss.Text
                       select new
                   {FADR = b.column2 + '\r' +
                   (b.column3 ?? " ") + '\r' +
                   (b.column4 ?? " ") + '\r' +
                    (b.column5 ?? " ") + '\r' +
                    (b.column6 ?? " ")};

            foreach(string something in Madr)
              {
                  MessageBox.Show(something);
              }

由于匿名类型

,我的错误转换失败

2 个答案:

答案 0 :(得分:5)

char(13)只是在C#中执行(char)13的等效(但更有限),它只返回'\r'

因此,您可以使用'\r'"\r"

isnull(x, y)只相当于C#中的x ?? y

所以你会使用类似的东西:

var query = from item in TableSource select
  item.column1 + '\r' +
  (item.column2 ?? " ") + '\r' +
  (item.column3 ?? " ") + '\r' +
  (item.column4 ?? " ") + '\r' +
  (item.column5 ?? " ");

TableSource是您获取表格引用的任何方式(context.Table或其他)。

query将是IQueryable<string>在调用时返回相关字符串。如果您确实需要示例中的FADRS名称,则以下代码将返回具有FADRS属性的匿名对象:

var query = from item in TableSource select
  new {FADRS = item.column1 + '\r' +
  (item.column2 ?? " ") + '\r' +
  (item.column3 ?? " ") + '\r' +
  (item.column4 ?? " ") + '\r' +
  (item.column5 ?? " ")};

编辑:

上面的第一个例子可以用作:

foreach(string something in query)
  MessageBox.Show(something);

第二个例子:

foreach(var something in query)
  MessageBox.Show(something.FADR);

第一个var是可选的简写,第二个必须使用var,因为涉及的类型是匿名的,因此var是命名类型的唯一方法(通过根本没有命名。)

答案 1 :(得分:0)

如果没有进一步的背景,我会说这样的话:

var query = from obj in context.table
        select  new  { 
            FADR = obj.column1 + "\r" + 
        obj.column2 ?? " " + "\r" + 
        obj.column3 ?? " " + "\r" +
        obj.column4 ?? " " + "\r" +
        obj.column5 ?? " " + "\r" };