【发布时间】:2012-06-16 13:10:30
【问题描述】:
可能重复:
Equivalent of SQL ISNULL in LINQ?
Using IsNull or select COALESCE in Linq..?
我已经在 LINQ 中尝试过这个查询:
string query = @"SELECT ISNULL(P.firstname, s.firstname) AS Expr1,ISNULL(P.lastname,
s.lastname) AS Expr2 FROM comment AS C LEFT OUTER JOIN professor AS P ON P.ID =
C.PID LEFT OUTER JOIN student AS s ON s.ID = C.SID
WHERE (C.VID = 2)";
ArrayList allNames=null;
using (var context = new NewsReaderEntities())
{
ObjectQuery<string> results = context.CreateQuery<string>(query);
// ObjectQuery<string> results1 = context.CreateQuery<string>
(query1,parameters);
foreach (string result in results )
{
allNames.Add(result);
}
}
return allNames;
}
但它返回错误:
linq 'ISNULL' 无法解析为有效的类型或函数。靠近 简单标识符,
我也试过这个查询:
SELECT COALESCE(p.firstname, s.firstname), COALESCE(p.lastname, s.lastname)
FROM comment c
LEFT JOIN Professor p
ON c.pid = p.id
LEFT JOIN Student s
ON c.sid = s.id
WHERE c.vid = 2
这也会引发错误。
两者都可以在 SQL 管理中正常工作。有什么想法吗?
【问题讨论】:
-
您是否尝试过谷歌搜索“linq isnull” - 它会返回这个 SO 问题,我相信它会回答您的问题 - stackoverflow.com/questions/413084/…
标签: sql sql-server linq linq-to-sql linq-to-entities