实体框架4.1渴望加载 - 抽象类 [英] Entity Framework 4.1 eager loading - on abstract classes

查看:118
本文介绍了实体框架4.1渴望加载 - 抽象类的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用EF 4.1在Code First方法。
我有一个抽象类:

  public abstract class Base 
{
}

和两个已经发布的课程:

  public Class Derived1:Base 
{
public Division division {get;组; }
}

public Class Derived2:Base
{
public品牌品牌{get;组; }
}

最后,我有一个查询选择一个基类列表,我想要加载,但我不知道我的派生类是谁:

  using(var db = new MyContext())
{
var lst = db.Base.Include(应该写在这里).ToList();
}

任何想法?

解决方案

你必须这样做:

  var lst = db.Base.OfType& Derived1>()。Include(d => division)
.Union(
db.Base.OfType< Derived2>()。Include(d => d.brand))
.ToList();


I'm using EF 4.1 at Code First approach. I have an abstract class:

public abstract class Base
{
}

And two dereived classes:

public Class Derived1 : Base
{
     public Division division{ get; set; }
}

public Class Derived2 : Base
{
     public Brand brand{ get; set; }
}

At last, I have a query that selects a list of the Base class, and i want to perform eager loading, but i don't know who my derived classes are:

using (var db = new MyContext())
{
     var lst = db.Base.Include(WHAT SHOULD I WRITE HERE).ToList();
}

Any Ideas?

解决方案

You must do this:

var lst = db.Base.OfType<Derived1>().Include(d => division)
            .Union(
               db.Base.OfType<Derived2>().Include(d => d.brand))
            .ToList();

这篇关于实体框架4.1渴望加载 - 抽象类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆