2012-04-18 84 views
2

我真的找不到如何将IQueryable转换为EntityCollection的答案?如何将IQueryable转换为EntityCollection

var userGroups = this.ObjectContext.UserGroups; 

foreach (var userGroup in userGroups) 
{ 
    var ussers = this.ObjectContext.Users.Where(f => f.UserGroupID == item.ID && f.IsActive == true); 

    userGroup.Users = users; // Here I' am getting an issue. 
} 

回答

3

我不是100%肯定,因为你没有指定,但我猜你userGroup.Users属性是由EDMX模型生成导航属性,因此已经为您创建的实体集合,您只需将用户添加到集合中即可。

var userGroups = this.ObjectContext.UserGroups; 

foreach (var userGroup in userGroups) 
{ 
    var ussers = this.ObjectContext.Users.Where(f => f.UserGroupID == item.ID && f.IsActive == true); 

    foreach(var user in ussers) 
     userGroup.Users.Add(user); 
} 
+0

所以没有LINQ/Helper类/有东西没有FOREACH做? – 2012-04-18 19:11:01

+2

LINQ是专门为无副作用而设计的,它用于查询。你在这里做的是造成副作用,所以它不应该在扩展方法,它*应该*在foreach。 – Servy 2012-04-18 19:11:49

+1

不是我知道的,请记住,IQueryable可以从不同来源的_lots_返回,它可能并不总是包含实体框架中的实体。当然,您可以轻松创建自己的扩展方法,为您完成工作。 – CodingGorilla 2012-04-18 19:12:38

相关问题