Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.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# 使用EF数据库优先方法创建泛型抽象类_C#_Entity Framework_Generics_C# 4.0_Abstract Class - Fatal编程技术网

C# 使用EF数据库优先方法创建泛型抽象类

C# 使用EF数据库优先方法创建泛型抽象类,c#,entity-framework,generics,c#-4.0,abstract-class,C#,Entity Framework,Generics,C# 4.0,Abstract Class,我有一些类似的实体,我想为它们的CRUD操作创建一个通用抽象类,但我不知道如何访问通用类中的实体。例如: public abstract class HeaderRepository<T> { public HeaderRepository() { } public virtual byte[] Insert(T item) { using (MyEntities context = new MyEntities())

我有一些类似的实体,我想为它们的
CRUD
操作创建一个通用抽象类,但我不知道如何访问通用类中的实体。例如:

public abstract class HeaderRepository<T>
{
    public HeaderRepository()
    {

    }

    public virtual byte[] Insert(T item)
    {
        using (MyEntities context = new MyEntities())
        {
            context.*****  <-- What I should write to add an object to entity T
        }
    }
}
公共抽象类HeaderRepository
{
公共总部地址()
{
}
公共虚拟字节[]插入(T项)
{
使用(MyEntities context=new MyEntities())
{

上下文。****您需要设置数据库集。最好在类级别设置一个私有变量,在构造函数中设置,然后使用它

using (MyEntities context = new MyEntities())
    {
        DbSet<T> dbSet = context.Set<T>();
        dbSet.Add(...) //Whatever your operation is. 
    }
使用(MyEntities context=new MyEntities())
{
DbSet DbSet=context.Set();
dbSet.Add(…)//无论您的操作是什么。
}

因为我使用了
ObjectContext
我得到了这个错误:“MyEntities”不包含“Set”的定义,并且找不到接受“MyEntities”类型的第一个参数的扩展方法“Set”(是否缺少using指令或程序集引用?)抱歉,您能解释一下吗?我不知道应该做什么更改。我用CreateObjectSet替换set我写的:
var query=context.CreateObjectSet();
但出现了以下错误:类型“t”必须是引用类型,才能在泛型类型或方法“ObjectContext.CreateObjectSet()”中将其用作参数“tenty”