首页 新闻 搜索 专区 学院

ADO.NET实体框架 linq to entities关于导航属性处理多表查询的问题

0
悬赏园豆:10 [已关闭问题] 关闭于 2010-07-08 10:58

   近来,使用ADO.NET实体框架来处理数据库底层操作,使用linq to entities来做数据库查询操作,中间遇到多表查询的问题,说是使用导航属性来处理,但是一直不知道该怎么处理。表结构如下:

  

这是实体模型中的表结构,实际上数据库表结构应该是:

要做的查询,用sql语句描述如下:

1 sql =
2 "select a.[ID],a.[Title],b.[group] as member " +
3 "from " +
4 "(select * from [actioncontrols] where [parent] = @model ) a " +
5 "left outer join [groupactioncontrol] b " +
6 "on a.[id] = b.[actioncontrol] " +
7 "and b.[group] = @member ";

 

现在的问题是,将这个SQL语句转换成Linq to entities,说是要用到导航属性,不知道该如何使用,希望答题者能将转换的结果给出,捎带能解释一下导航属性到底是怎么回事?

问题补充: 此问题已经解决,解决方法如下: from a in dataContext.ActionControl where a.Groups.Any(i => i.ID == str) && a.Parent == model select new {a.ID, a.Title};
小李北漂的主页 小李北漂 | 初学一级 | 园豆:176
提问于:2010-07-06 10:34
< >
分享
所有回答(1)
0

导航属性  就是明明不是这个实体 用这个属性导航到另一个实体

比如  A和B  是 多对多的关系

 A因为和B建立了关系  导致A增加了一个  A.Bs 集合导航属性

那么你要取得 ID为1的A和相关的B  只需

    context.A.Include("Bs").Where (itema=>itema.Id==1)  

就可以了

Include 表示  在查询A的时候  同时也要填充的导航属性

 

 

MSFT:waywa 韦恩卑鄙 | 园豆:303 (菜鸟二级) | 2010-07-06 13:23
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册