Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何查询上下文以创建子类POCO实体?_C#_Entity Framework_Poco - Fatal编程技术网

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

C# 如何查询上下文以创建子类POCO实体?,c#,entity-framework,poco,C#,Entity Framework,Poco,假设我有以下生成的实体框架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; }

假设我有以下生成的实体框架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如何检索
subassedfoo
对象而不是
Foo
对象

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

ObservableCollection<Foo> foos = context.Foos
observeCollection foos=context.foos
例如:

ObservableCollection<SubclassedFoo> subclassedFoos = context.???
observeCollection子类Foos=上下文。???
使用类型为
的过滤器:


与您的问题无关,但实体框架并不总是很好地处理重写的属性。如果您对此有问题(即使您现在没有问题),您可以将
Id
更改为一个非虚拟属性,该属性调用virtual
getId()
setId()
方法,并且只重写派生类中的那些方法。
List<SubclassedFoo> subclassedFoos = context.Foos
    .OfType<SubclassedFoo>()
    .ToList();
ObservableCollection<SubclassedFoo> subclassedFoos =
    new ObservableCollection<SubclassedFoo>(context.Foos
        .OfType<SubclassedFoo>()
        .AsEnumerable());