【发布时间】:2013-08-24 07:03:45
【问题描述】:
我有一个非常基本的 SQL 连接语句,我似乎不知道如何使它在 LINQ 中工作。它在 JOIN 中使用 OR 语句,我在网上找到了在 JOIN 中使用 AND 的代码,但在我的情况下对 OR 没有任何帮助。
这里是 SQL:
SELECT *
FROM Proposals AS a
LEFT JOIN Proposal_Minions AS b
ON a.ID = b.Proposal_ID
LEFT JOIN Users AS c
ON (a.PI_User_ID = c.ID) OR (a.Creator_User_ID = c.ID) OR (b.User_ID = c.ID)
WHERE c.Account = 'myname'
任何帮助将不胜感激。
【问题讨论】:
-
我认为不可能使用 LINQ。
-
必须是 LINQ 吗?如果需要(通常是为了更好的性能),您可以对 DBconext 执行原始 SQL。
-
使用 LINQ 而不是 SQL 是一种不好的代码气味。即使可能,您也不应该使用 LINQ。 EF 或 Linq to SQL 是 ORM,而不是 SQL 语言的替代品。除非您的查询表和结果整齐地映射到类,否则最好编写适当的 SQL 语句。
-
我是 EF 新手,正在努力学习最佳实践。我认为 EF 的部分好处是无需进行数据库工作并直接处理实体/类?是否按照以下建议对文本 SQL 查询执行最佳实践?
标签: sql linq sql-to-linq-conversion