c# - Entity Framework 中的 Sql Char(13) 和 isnull 的替代品是什么?

标签 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 answer,我得到了答案。知道我的问题是如何使用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);
              }

由于匿名类型,我收到错误转换失败

最佳答案

char(13)只是相当于(虽然更有限)(char)13在 C# 中,它只会返回 '\r' .

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

isnull(x, y)相当于x ?? y在 C# 中。

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

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 name 来自您的示例,那么以下内容将代替字符串返回带有 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是命名类型的唯一方法(根本不命名)。

关于c# - Entity Framework 中的 Sql Char(13) 和 isnull 的替代品是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20869912/

相关文章:

c# - 退出后保留程序的数据

c# - .net core 1.0.0 与 Entity Framework 核心 sqlite

C# 获取 SQL 日志

MySQL 查询 - 我们如何在 3 个表中选择特定值中的多列

c# - 使用 LINQ,获取导航属性的前 x 行的方法是什么?

c# - 删除 HTML 标签的正则表达式

c# - BotFramework 在表单流中访问用户数据

mysql - 按两列排序不起作用

c# - EF 跟踪数据库中的更改

entity-framework - 链接到实体聚合方法替换