C#中的通用抽象

时间:2015-07-24 07:55:18

标签: c# asp.net generics casting abstraction

我试图用C#在ASP.NET MVC中实现抽象。

我有一个基本实体控制器,它应该为其派生类(实体)完成大部分工作。在其中,我有一个有问题的方法应该返回每个表的数据库上下文(我没有使用像EF这样的任何数据库框架)。这是方法:

protected abstract DbContext<EntityViewModel> CreateContext();

所以,假设我有一个Category表,应该实现该方法:

protected override DbContext<EntityViewModel> CreateContext()
{
    return new CategoryDbContext();
}

但是C#说我不能隐瞒它等等......

以下是上下文类:

public abstract class DbContext<T>
{
    public abstract void Create(T entity);

    public abstract List<T> Read(ModifyData data);

    public abstract void Update(T entity);

    public abstract void Delete(T entity);
}

public class CategoryDbContext : DbContext<CategoryViewModel>
{
    public override void Create(CategoryViewModel entity)
    {
    }

    public override List<CategoryViewModel> Read(ModifyData data)
    {
    }

    public override void Update(CategoryViewModel entity)
    {
    }

    public override void Delete(CategoryViewModel entity)
    {
    }
}

我在这里做错了什么?

0 个答案:

没有答案