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”