C# 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。

我有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。结果类型的泛型参数或查询必须使用可为空的类型


我想问题出在这一行:

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