我的数据库中有一个存储过程,如下所示:
IF EXISTS (SELECT * FROM Table1)
BEGIN
-- select statement
END
我正在使用此过程来检查 table1 中是否有任何数据。Table1 用作数据库端的队列。
在我的 C# 应用程序中,我使用实体框架来执行这个存储过程。方法如下所示:
using (DatabaseEntities db = new DatabaseEntities())
{
var result = db.ALL_GET_JOBS();
if (result == null)
{
Console.WriteLine("No new jobs");
}
else
{
Console.WriteLine(string.Format("received {0} new jobs", result.Count()));
}
}
当我执行程序时,我收到一个异常,告诉我结果中不存在我定义的列之一。是的,因为过程返回 0。在我到达 if 语句之前抛出异常。
我已经尝试将 .DefaultIfEmpty(null) 或 .FirstOrDefault() 添加到过程的调用中,但据我所知,错误发生在结果评估期间。
你们中是否有人知道如何处理返回 0 而不是实体框架中的结果集的过程?
克里斯托夫