首页 新闻 赞助 找找看

EF4.1 导航属性的条件约束问题请教(多对多,或一对多应该经常用到的)

1
悬赏园豆:200 [已关闭问题] 关闭于 2011-09-10 17:36

我有一个自身的父子关系的实体,表结构如图

我的linq语句如下:(我想约束加载进来的children是按照一定条件加载,但问题是我在这个结果集中循环每个MenuNodes下的children并没有按条件加载,而是每个MenuNodes下面的children全部显示。)

我尝试过这样写,但是报PATH错误

 

return DataContext.MenuNodes.
Include(s => s.children.Where(c=>c.Roles.Any(r=>r.IsLock==false)))
.Where(s =>s.Roles.Any(r => r.IsLock == false))
.Distinct().OrderByDescending(s => s.Displayorder).ToList();

 

下面这个是在网络上找的一个答案,结果还是没能解决问题,同样是子项目全部显示

参考这里的 http://social.msdn.microsoft.com/Forums/en/adodotnetentityframework/thread/0877f2f3-32d4-43cd-bd13-90e6c2840e34

 

var menuReservalition = from m in DataContext.MenuNodes
where m.Roles.Any(r => r.IsLock == false)
select
new {
MenuNode=m,
children=m.children.Where(c => c.Roles.Any(r => r.IsLock == false))
};
var a
= menuReservalition.ToArray().Select(m => m.MenuNode);
return a.ToList();

 

请教下各位大虾支招,感激不尽,园豆不多,多见谅

张放春的主页 张放春 | 初学一级 | 园豆:43
提问于:2011-08-17 00:31
< >
分享
所有回答(1)
0

建议写存储过程来实现吧.

PetterLiu | 园豆:354 (菜鸟二级) | 2011-08-17 16:55

不想用递归,被迫递归了!!!!

支持(0) 反对(0) 张放春 | 园豆:43 (初学一级) | 2011-09-10 17:49

@张放春: 使用T-SQL中CET来实现就可以了,很简单的. 不想程序中的递归

支持(0) 反对(0) PetterLiu | 园豆:354 (菜鸟二级) | 2011-09-10 23:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册