相关疑难解决方法(0)

用自定义DbSet/IDbSet包装DbSet <TEntity>?

首先,我认为这样做有些荒谬,但是我团队的其他成员坚持认为,除了"我认为这是愚蠢的"之外,我无法提出反对它的好论据......

我们要做的是创建一个完全抽象的数据层,然后具有该数据层的各种实现.很简单吧?输入实体框架4.1 ...

我们的最终目标是程序员(我尽力只留在数据层)永远不希望暴露于具体的类.除了显然需要实例化工厂之外,他们只想在代码中使用接口.

我希望实现以下内容:

首先我们有所有接口的"Common"库,我们称之为"Common.Data":

public interface IEntity
{
    int ID { get; set; }
}

public interface IUser : IEntity
{
    int AccountID { get; set; }
    string Username { get; set; }
    string EmailAddress { get; set; }
    IAccount Account { get; set; }
}

public interface IAccount : IEntity
{
    string FirstName { get; set; }
    string LastName { get; set; }
    DbSet<IUser> Users { get; set; } // OR IDbSet<IUser> OR [IDbSet implementation]?
}

public …
Run Code Online (Sandbox Code Playgroud)

c# architecture abstraction design-patterns entity-framework-4.1

17
推荐指数
1
解决办法
1万
查看次数