首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > CAD教程 >

entity framework表关系有关问题

2012-03-25 
entity framework表关系问题var userInfo (from u in context.Userswhere u.Name userName&&u.Passwo

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();
了么?
[解决办法]

探讨
也感谢你分享你的经验~:)

热点排行