获取Linq的鉴别员选择结果

时间:2015-10-01 13:34:37

标签: entity-framework linq linq-to-entities

我尝试使用LinqToEntities进行SQL查询,这将尽可能高效,因此我希望避免在我获得结果的每条记录之后迭代以获得新的更正集合。我尝试使用这一个查询创建一个现成的集合,以便在API中发送。

我试图通过继承模型获得鉴别器值。

我的模特有点像这样:

public abstract class DbEntity
{
    [NotMapped]
    public string DiscriminatorValue
    {
        get
        {
            return ObjectContext.GetObjectType(GetType()).Name;
        }
    }
}

public class Foo : DbEntity {
}

public class Bar: DbEntity {
}

此模型将在数据库中创建一个表,该表将包含一个名为Discriminator的列。为了获得鉴别器值,我使用了我的自定义DiscriminatorValue属性,但它不能在这样的查询中工作:

var events = context.MyTable.Select(t => new {
    Discriminator = t.DiscriminatorValue
}).ToList();

下面这个显然会起作用,但是它会慢得多:

var events = context.MyTable.ToList().Select(t => new {
    Discriminator = t.DiscriminatorValue
}).ToList();

是否有可能获得Discriminator值而无需自己编写自定义SQL查询(就像我知道的真正的sql一样)。

0 个答案:

没有答案