在this question的推动下,我决定在我的MVC3 3/ActiveRecord应用程序中尝试这一点。
我有一堆模型已经起作用了,还有一些关于这些模型的观点。这里没什么特别的。我的一个模型叫做AppSession。
基于上述问题,我希望这个问题能够奏效:AppSession.FirstOrDefault(a => ...) ?? null。
它没有起作用。我还能拿到InvalidOperationException。FirstOrDefault和SingleOrDefault也是如此。最后,我把我的电话包装在try/catch上,以避开它。
我在这里做错什么了?
编辑:根据请求,实际代码是:
void getAnAppSession() {
AppSession sessions = project.AppSessions.FirstOrDefault(a => a.Ip == ip && a.MacAddress == macAddress && a.Platform == platform && a.Version == version && a.EndTime == null)
}ip、macAddress、platform和version都是可验证的非空方法变量。我的AppSessions模式(以及相应地,类上的属性)包括:
(int,非null)
)
发布于 2012-06-06 21:06:21
也许您的project.AppSessions本身是空的?这将导致FirstOrDefault()方法引发错误。在调用FirstOrDefault之前,您可能需要检查它是否为null,如果该对象为null,则创建一个新的AppSession对象:
AppSession sessions = (project.AppSessions as AppSession ?? new AppSession())
.FirstOrDefault(a => a.Ip == ip &&
a.MacAddress == macAddress &&
a.Platform == platform &&
a.Version == version &&
a.EndTime == null);https://stackoverflow.com/questions/10921701
复制相似问题