首先,我认为这样做有些荒谬,但是我团队的其他成员坚持认为,除了"我认为这是愚蠢的"之外,我无法提出反对它的好论据......
我们要做的是创建一个完全抽象的数据层,然后具有该数据层的各种实现.很简单吧?输入实体框架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