c# - 如何查询上下文以便创建子类 POCO 实体?

标签 c# entity-framework poco

假设我有以下生成的 Entity Framework POCO 类:

public partial class Foo
{
    #region Primitive Properties

    public virtual long Id { get; set; }

    #endregion
}

然后我将它子类化:

public class SubclassedFoo : Foo
{
    public override long Id
    {
        get { return base.Id; }
        set { base.Id = value; }
    }
}

ObjectContext 如何检索 SubclassedFoo 对象而不是 Foo 对象?

例如,我可以用什么代替这个?

ObservableCollection<Foo> foos = context.Foos

如:

ObservableCollection<SubclassedFoo> subclassedFoos = context.???

最佳答案

OfType<SubclassedFoo> 过滤:

List<SubclassedFoo> subclassedFoos = context.Foos
    .OfType<SubclassedFoo>()
    .ToList();

或者如果你真的想要一个 ObservableCollection :

ObservableCollection<SubclassedFoo> subclassedFoos =
    new ObservableCollection<SubclassedFoo>(context.Foos
        .OfType<SubclassedFoo>()
        .AsEnumerable());

关于c# - 如何查询上下文以便创建子类 POCO 实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11594732/

相关文章:

C# 显式删除事件处理程序

c# - LINQ - IEnumerable.ToList() 和延迟执行混淆

c# - 违反主键 Entity Framework Code First

class - “POCO”定义

c# - 等同于 .NET Core 的 App.config 转换?

javascript - 使用 SignalR 从 C# 调用 JS 方法?

c# - 在调用 SaveChanges 之前从 EF 集合中获取对象

c# - Entity Framework 6 SqlFunctions DateDiff 未在 nuget 包中实现

c# - Entity Framework 中的 POCO 支持

c# - Entity Framework 5.0 复合外键到非主键 - 这可能吗?