【问题标题】:How to make linq lambda expression如何制作 linq lambda 表达式
【发布时间】:2020-06-18 22:45:21
【问题描述】:
select a.ObjectFieldID,
       a.FieldName,
       b.RelationName 
  from tblMNG_Framework_ObjectField as a left join 
       tblMNG_Framework_ObjectRelation as b on a.ObjectID = b.RelatedObjectID 
                                           and a.ObjectFieldID = b.RelatedKeyFieldID 
 where a.ObjectID = 2 
   and a.Deleted = 0

【问题讨论】:

  • 你在问什么?这已经是一种表达方式了。还是您的意思是方法语法而不是类似 SQL 的语法?
  • @HimBromBeere 我只想将此 sql 查询转换为 Linq LambdaExpression。
  • @jdweng 谢谢您的回复,但这是 Linq 示例我想 linq lambda 表达式,但我不知道如何使连接包括两个和表达式,例如我的示例包括连接两个这样的条件在 a.ObjectID = b.RelatedObjectID 和 a.ObjectFieldID = b.RelatedKeyFieldID

标签: c# sql entity-framework linq lambda


【解决方案1】:

这是我的快速代码,我没有要测试的数据,所以如果左连接不准确,请用你的数据样本反馈给我。

tblMNG_Framework_ObjectField.GroupJoin(tblMNG_Framework_ObjectRelation,
                a => new { JoinCol1 = a.ObjectID, JoinCol2 = a.ObjectFieldID },
                b => new { JoinCol1 = b.RelatedObjectID, JoinCol2 = b.RelatedKeyFieldID },
                (a, b) => new { a, b }).Where(x => x.a.ObjectID == 2 && x.a.Deleted == 0)
                .SelectMany(b => b.b.DefaultIfEmpty(),
                (a, b) => new { a.a.ObjectID, a.a.FieldName, b.RelationName });

希望对你有帮助

【讨论】:

  • 我收到这样的错误。方法的类型参数 'Enumerable.GroupJoin(IEnumerable, IEnumerable, Func, Func, Func, TResult>)' 不能从用法中推断出来。尝试明确指定类型参数。
  • 我没有数据可以测试左连接,所以如果它不起作用,请提供一点数据样本是好的
  • 我得到这样的错误:方法'Enumerable.GroupJoin的类型参数(IEnumerable, IEnumerable, Func, Func, Func, TResult>)' 不能从用法中推断出来。尝试明确指定类型参数
  • 这是工作兄弟,在这里查看我的代码:dotnetfiddle.net/fId8qP
  • 我仍然收到 GroupJoin 语法错误。我还编译了你的代码,没有错误:(谢谢你的一切
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多