2014-02-06 91 views
0

我要取一个对象像这样如何使用查找获取对象同时还包含另一个对象?

var fetchedObject = ds.Products.Find(id); 

但我还需要添加一个包括(),因为产品包含一个供应商的对象。我得到的代码就像

var fetchedObject = ds.Products.Include(“Supplier”).SingleOrDefault(i => i.Id == id); 

我将如何将二者结合起来,所以我找到(ID),同时还包括(“供应商”)?

回答

0

我不明白你的问题是什么?您的第二行代码是“查找”具有该ID的对象,还包括供应商。我想你可能会误解Include包含的内容。包括意味着它只会让一个往返到数据库,并检索与它一起的导航属性“供应商”,因此,这可以在下一行通过做一些事情来查询:

var supplier = fetchedObject.Supplier; 

或任何你想要的与它做。你有没有试过运行你的第二条线?

如果您没有在其中编写include子句,那么将会延迟评估fetched对象的供应商。这意味着如果您决定使用供应商,它将不得不再次访问数据库。

+0

所以我的问题是我想查找(ID)以及包括(供应商)。你是说第二行代码(为我提供)执行这两件事情吗? – user2981393

+0

是的从你的描述你想要它做什么我认为第二行做你想要的。 – TylerD87

+0

好的,谢谢你让我知道!我不知道 – user2981393

0

你不能。 Find会执行一些与Include之类的事件相冲突的优化。也就是说,find将始终从本地存储中返回对象,而不会发出查询,如果它已经从数据库中提取。

相关问题