-1

当我尝试在我的项目中添加数据时出现此错误。它指向此代码:

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。

4

1 回答 1

1

您的一个或多个HospitalIds 为空。您可以通过将Where子句更改为来修复它:

var userClaims = claims.Where(c => c.Hospitalid == user.Hospitalid);

这将过滤掉任何带有 null 的声明HospitalId

请注意,您当前正在加载整个Claims表并过滤内存中的集合。您可能想在数据库上执行过滤器,您可以这样做:

List<Claim> claims = db.Claims.Include("Claim_Status").Include("Patient").Include("Hospital")
    .Where(c => c.HospitalId == user.Hospitalid)
    .ToList();
于 2013-04-14T21:55:17.030 回答