C#Generic Repository

Nic*_*ick 0 c# generics

我正在尝试实现一个通用存储库,但我遇到了困难.以下是我的对象模型的摘要.问题是具体的存储库"UserAccountRepositoryStub"将无法编译.错误是:

用户类型必须可转换为IRepository类型...

IRepostory:

    public interface IRepository<T> where T : IEntity
{
...
}
Run Code Online (Sandbox Code Playgroud)

抽象存储库:

public class AbstractRepository<T> where T : class, IEntity, IRepository<T> {...}
Run Code Online (Sandbox Code Playgroud)

IUserAccountRepository:

public interface IUserAccountRepository
Run Code Online (Sandbox Code Playgroud)

用户:

public class User : IEntity{...}
Run Code Online (Sandbox Code Playgroud)

UserRepositoryStub(混凝土):

public class UserAccoutRepositoryStub : AbstractRepository<User>, IUserAccountRepository
Run Code Online (Sandbox Code Playgroud)

Per*_*xus 5

AbstractRepository<T>应该的定义应该是

public class AbstractRepository<T> : IRepository<T> where T : class, IEntity {...}
Run Code Online (Sandbox Code Playgroud)

因为你希望存储库IRepository<T>不是实现其中的对象,对吧?