使用实体框架检索相关实体

时间:2011-11-29 14:58:03

标签: c# .net entity-framework

实体框架中是否有一种方法可以让我们知道两个实体是否相关?

2 个答案:

答案 0 :(得分:0)

假设你的变量都附加在同一个上下文中。您想知道bar1变量是否是foo.bars集合中的某个条形值。你可以这么做:

theyAreEqual = foo.bars.Contains(bar1);

如果你的实体变量没有附加到上下文,那么你可能有不同的变量在逻辑上引用相同的db记录,但实际上是指向不同对象的指针。因此,您需要比较关键值:

theyAreLogicallyEqual = foo.bars.Select(b => b.BarId).Contains(bar1.BarId);

我假设您知道这一点,但对于其他人来说,the differences in value and reference type equality在这里很重要。

答案 1 :(得分:0)

您可以使用Linq to Entities。您可以匹配entity1中的每个对象,并检查entity2中是否存在相应的数据/对象实体。

using (NorthwindEntities nw = new NorthwindEntities())    
{    
       var cusotmers = from c in nw.Customers    
                       where c.City == "London"    
                       select c;    
}

您可以在此处找到更多信息: http://msdn.microsoft.com/en-us/library/cc161164.aspx