我使用我创建的数据库选项和模型类的更新生成了实体框架类。我的问题是,如果我有一个名为'car'的表,并且有一个名为'car'的模型,那么使用它们的最佳方式是什么?它们应该是同一个类,还是应该使用partial,或者我应该为模型分别使用单独的类来表示数据库表,你能指出一个例子吗?
答案 0 :(得分:2)
我总是将视图模型保存在与实体数据模型不同的类库(具有单独的命名空间)中。这样,如果数据库模式发生变化(几乎总是发生),我就不会破坏我的观点。为了在数据对象和视图模型之间移动数据,我非常喜欢Automapper。如果目标对象上有属性缺少源映射,它甚至会给你单元测试失败,帮助你尽早发现错误。
答案 1 :(得分:2)
我发现在您的解决方案中专门为数据访问提供单独的项目通常是一种好习惯。
我通常将其设置为类库项目,其类似于以下结构。
/ProjectNameData
/Models/ -- POCO's go here
/Mapping/ -- EntityTypeConfiguration classes go here
/Repositories/ -- Repositories go here
/ProjectContext.cs
然后我会有另一个服务类库和我的主应用程序项目。