entity framework表关系问题
var userInfo = (from u in context.Users
where u.Name == userName &&u.Password==passWord
select u).FirstOrDefault();
if (userInfo != null)
{
userInfo.tbRole = (from u in context.Users
where u.Name == userName
&& u.Password == passWord
select u.tbRole).FirstOrDefault();
}
return userInfo;
表tbUser和tbRole已经建立了多对一关系,tbUser的导航属性是tbRole
如果我只执行 var userInfo = (from u in context.Users
where u.Name == userName &&u.Password==passWord
select u).FirstOrDefault();
查询出来的tbUser中的tbRole确是空值............我必须还这样做:
if (userInfo != null)
{
userInfo.tbRole = (from u in context.Users
where u.Name == userName
&& u.Password == passWord
select u.tbRole).FirstOrDefault();
这样tbUser.tbRole才有值,这样做是不是很搞笑,不知道什么原因,难道关系建错了吗?
[解决办法]
按照我理解的,是不是你必须执行两次查询u.tbRole才能获取到tbRole数据呢?
如果是这样,那你第一次查询userInfo 是Null么?确认执行
userInfo.tbRole = (from u in context.Users
where u.Name == userName
&& u.Password == passWord
select u.tbRole).FirstOrDefault();
了么?
[解决办法]