期望记录集(> = 1条记录)时,如何检查0记录情况?实体框架 - ToList()和0记录
例如:
RivWorks.Model.FeedStoreReadOnly store = new RivWorks.Model.FeedStoreReadOnly(AppSettings.FeedAutosEntities_connString, AppSettings.FeedAutosEntities_metadata, AppSettings.FeedAutosEntities_providerName);
RivWorks.Model.NegotiationAutos.Entities _dbFeed = store.ReadOnlyEntities();
var companyDetails = from a in _dbFeed.ClientClientMap where a.CompanyID == CompanyId select a;
return companyDetails.ToList();
当它返回它是在ToList(),因为没有记录是满足WHERE子句示数出来。那么,检查0条记录的正确方法是什么?以及此时建议的回报是多少?
加入下面的答案基于关:
if (companyDetails.Count() > 0)
return companyDetails.ToList();
else
{
List<RivWorks.Model.NegotiationAutos.ClientClientMap> ret = new List<RivWorks.Model.NegotiationAutos.ClientClientMap>();
ret.Add(companyDetails.FirstOrDefault());
return ret;
}
还没有测试,但该(逻辑)似乎工作。想知道是否有更简单的方法。
注意:
我想通弄明白了。 SQL所运行的帐户没有被DBA授予正确的权限集。我们更改了新表/视图上的所有GRANT语句,现在它正在工作。
尽管如此,我仍然不确定什么是正确的答案。我努力创造一个空白(新)记录并添加到列表中,这样我们的球员接受列表有东西扶着显示(为编辑,如果没有别的)...
你确定例外吗?它不应该出错,它应该返回一个包含0条记录的列表。 – 2010-01-13 22:50:02
你得到的例外是什么? – mxmissile 2010-01-13 22:50:54
在内部异常我得到“无效的对象名称'dbo.ClientClientMap'”。我不理解这个错误,因为我可以在模型中看到对象,并且可以很好地引用它。 – 2010-01-13 23:23:54