我们应该使用实体框架生成的实体吗

时间:2018-10-19 09:00:39

标签: c# asp.net entity-framework-6

您好,我使用具有工作模式单元的实体框架,我想知道是否应该在我的应用程序层中直接使用由实体框架生成的实体,还是应该在应用程序层中重新创建POCO对象并映射我的POCO?

因为我希望我的应用程序层不对我的实体做任何引用,所以我想例如在解决方案中创建另一个项目,该项目可以将我的实体映射到我的应用程序中的poco,但是我不知道这是否是个好习惯,尤其是我不知道该怎么做

提前谢谢!

1 个答案:

答案 0 :(得分:0)

在我的UnitOfWork中,我使用了通用存储库模式,该模式直接使用EF生成的模型。 IRepository<T>界面看起来像这样:

public interface IRepository<T> where T : class
{
    void Add(T entity);
    T GetById(long Id); 
     //etc - all the stuff you probably have
 }

我已经实现了名为IRepository的{​​{1}}

Repository

使用集合和类型可以使我访问该特定类型的数据集(public Repository<T> : IRepository<T> { public readonly Infomaster _dbContext; public Repository(Infomaster dbContext) { _dbContext = dbContext; } public void Add(T entity) { _dbContext.Set<T>.Add(t); } } ),从而可以创建通用模式。您可以使用特定的类,但需要做很多工作。 这意味着在我的dbSet中,我只需要执行以下操作:

UnitOfWork

我发现这是最好的方法,需要使用模型类,我使用的是代码优先数据库,但是我首先使用数据库。

(通过iPhone-可以并且将从笔记本电脑更新)