我想知道如何加载多个级别的实体;更具体地说,如何加载单个实体的多个级别的后代。这是我创建的一个例子。假设在一个Web界面上,创建新产品后,我想显示其类别类型。因此,我们有某一类的产品,而这一类有一个类别类型同一个名字:asp.net mvc 3 - 你如何加载实体的孩子和大孩子?
[HttpPost]
public ActionResult DoSomething(Product product)
{
if (ModelState.IsValid)
{
productRepository.InsertOrUpdate(product);
productRepository.Save();
...
context.Entry(product).Reference(p => p.Category).Load();
string someString1 = product.Category.SomeProperty;
...
string someString2 = product.Category.CategoryType.Name;
...
有人向我展示了如何在另一个帖子节省对象加载后的孩子(见someString1在上面的例子中) ,但我无法弄清楚如何加载grand-children(someString2)。
有examples on the net显示如何加载实体和所有相关对象的集合,但省略显示如何加载单个实体的所有后代。
我正在使用ASP.Net MVC 3与EF 4.1。而这一切对我来说都是新鲜事,所以请耐心等待。
我相信我曾尝试过,但发出第二个context.Entry时收到错误消息。有关product.Category的内容不在上下文中。我会再试一次并发布确切的错误消息。 –
是的,这将有助于确定正确的解决方案。 – getmk
我又试了一次,现在它正在工作。自那时起,我的代码发生了很大变化,所以我不知道为什么它不能正常工作,现在是这样。无论如何非常感谢! –