Entity framework 将实体的sql链接方法从数据上下文移动到entitiy类的最佳方法是什么?
我喜欢实体框架。通常,我创建一个服务类(布局),将与数据库交互的逻辑放在那里。看起来是这样的:Entity framework 将实体的sql链接方法从数据上下文移动到entitiy类的最佳方法是什么?,entity-framework,architecture,datacontext,Entity Framework,Architecture,Datacontext,我喜欢实体框架。通常,我创建一个服务类(布局),将与数据库交互的逻辑放在那里。看起来是这样的: public class UserService { MyDbContext _context; public UserService(MyDBContext context) { _context = context; } public void MoveUserToGroup(User user, Group group)) { ...
public class UserService
{
MyDbContext _context;
public UserService(MyDBContext context)
{
_context = context;
}
public void MoveUserToGroup(User user, Group group)) { ... }
}
public class User
{
// ...
public void AddTo(Group group) { ... }
}
public class Group
{
// ...
public void Add(User user) { ... }
}
我在代码的某个地方使用它:
userService.MoveUserToGroup(User user, Group group);
这很好,但我希望我的课程是这样的:
public class UserService
{
MyDbContext _context;
public UserService(MyDBContext context)
{
_context = context;
}
public void MoveUserToGroup(User user, Group group)) { ... }
}
public class User
{
// ...
public void AddTo(Group group) { ... }
}
public class Group
{
// ...
public void Add(User user) { ... }
}
我想用它来:
user.AddToGroup(group);
最好的方法是什么?迪?扩展?如何在我的类中保持数据库上下文?您通常会映射实体的所有相关导航属性
public class User
{
public virtual ICollection<Group> Groups { get; set; }
public void AddTo(Group group)
{
Groups.Add(group);
}
}
公共类用户
{
公共虚拟ICollection组{get;set;}
公共无效添加到(组)
{
组。添加(组);
}
}
这是一个应由您选择的OR/M而不是DI解决的问题。