您的所有实体都在同一个数据库中吗?我建议像这样分离你的程序集:
数据- 包含您的实体框架模型和/或类/实体定义的项目(取决于您使用的 EF 方法类型)。
服务- 包含操作数据的接口和类的项目。例如,对于您的 User 实体(和相关项目),您可能有这个:
public interface IUser : IDisposable
{
Data.User Get(int userId);
IQueryable<Data.User> GetAll();
//other method definitions for User entity CRUD
}
然后,您执行:
public class User : IUser
{
private readonly DataEntities _dataContext = new DataEntities(); //this is from your EF Data assembly
public Data.User Get(int userId)
{
return _dataContext.Users.FirstOrDefault(u => u.UserId == userId);
}
public IQueryable<Data.User> GetAll()
{
return _dataContext.Users;
}
//other method implementations
public void Dispose()
{
_dataContext.Dispose();
}
}
然后,在您的模块项目中引用您的Service
和程序集。Data