当我试图在我的项目中添加数据时出现此错误。我指向此代码:
var currentuserid = WebSecurity.CurrentUserId;
var user = db.UserProfiles.SingleOrDefault(u => u.UserId == currentuserid);
List<Claim> claims = db.Claims.Include("Claim_Status").Include("Patient").Include("Hospital").ToList();
var userClaims = claims.Where(c => c.Hospitalid.Value == user.Hospitalid);
return View(userClaims.ToList());
怎样才能解决这个问题。
我正在使用Microsoft sql server 2008。
答案 0 :(得分:1)
您的一个或多个HospitalId
为空。您可以通过将Where
子句更改为:
var userClaims = claims.Where(c => c.Hospitalid == user.Hospitalid);
会过滤掉任何声明为HospitalId
的声明。
请注意,您当前正在加载整个Claims
表并在内存中过滤集合。您可能希望在数据库上执行过滤器,您可以使用:
List<Claim> claims = db.Claims.Include("Claim_Status").Include("Patient").Include("Hospital")
.Where(c => c.HospitalId == user.Hospitalid)
.ToList();