C# MVC Linq中的错误
我有MVC中的Linq查询C# MVC Linq中的错误,c#,linq,C#,Linq,我有MVC中的Linq查询 obj_CCM.TeamName=(来自db.Team_Master中的c) 其中c.Id!=TeamId 选择新类型团队 { TeamID=c.Id, TeamName=c.TeamName } ).ToList(); 会话[“TeamId”]=obj_CCM.TeamName.Count>0?Convert.ToInt32(obj_CCM.TeamName[0].TeamID):-1; 我面临以下错误: 转换为值类型“Int32”失败,因为具体化的值为null。
obj_CCM.TeamName=(来自db.Team_Master中的c)
其中c.Id!=TeamId
选择新类型团队
{
TeamID=c.Id,
TeamName=c.TeamName
}
).ToList();
会话[“TeamId”]=obj_CCM.TeamName.Count>0?Convert.ToInt32(obj_CCM.TeamName[0].TeamID):-1;
我面临以下错误:
转换为值类型“Int32”失败,因为具体化的值为null。结果类型的泛型参数或查询必须使用可为空的类型
我想问题出在这一行:
TeamID = c.Id
在您的Team\u Master
表中,Id
列必须可以为null,因此它返回null,但是TypeTeam
中的属性TeamID
被定义为int
,不能包含null值。因此,您需要禁止数据库中的Id列接受null值,或者将TeamID
属性设置为可为null的整数
public int? TeamID{ get; set; }
另外,作为旁注,您的查询正在返回
列表
,但您正在将其存储在obj_CCM.TeamName
中,这可能是一个输入错误,或者您可能已经定义了列表
类型的TeamName,如果会话[“TeamId”!=空,然后进行转换。团队名称这是打字错误吗?我猜它应该是obj_CCM.TypeTeam
,因此错误告诉您TeamId(So db.Team_Master.Id)为空。这与数据库存储的内容匹配吗?它也可以是obj_CCM.TeamName[0]。TeamID
在使用.HasValue
返回之前,您应该确保它们具有值。是。我有列表类型的TeamName。TeamMaster中的id不可为空。@samarkadam-Ohk,它对你有用吗?您是否尝试过将TeamID
的数据类型更改为int?
Session["TeamId"] != null