【发布时间】:2012-06-07 05:06:21
【问题描述】:
在this question 的推动下,我决定在我的 MVC3/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 架构(以及相应的我班级的属性)包括:
- ID(整数,非空)
- StartDate(日期时间,非空)
- EndDate(日期时间,空)
- Ip(字符串,非空)
- MacAddress(字符串,非空)
- 平台(字符串,非空)
- 版本(字符串,非空)
【问题讨论】:
-
在调用 first 或 default 之前是否检查 appsession 是否为空?
-
你能把你写
...的实际代码贴出来吗?也许这就是引发异常的地方。 -
你不需要写
?? null。这没有任何用处。 -
那个??在链接问题的获胜答案中被提及。我没有检查 a => a != null,如果这就是你的意思。我不会发布实际代码,因为它没有意义;好的,好的。
-
InvalidOperationException 的信息是什么?
标签: asp.net-mvc-3 castle-activerecord