【发布时间】:2013-10-27 01:25:43
【问题描述】:
我有使用我创建的数据库选项和模型类的更新生成的实体框架类。我的问题是,如果我有一张名为“car”的桌子和一个名为“car”的模型,以及使用这些的最佳方式是什么?它们应该是同一个类,还是应该使用部分,或者我应该有单独的模型类和单独的类来表示数据库表,你能给我举个例子吗?
【问题讨论】:
标签: asp.net-mvc entity-framework asp.net-mvc-4
我有使用我创建的数据库选项和模型类的更新生成的实体框架类。我的问题是,如果我有一张名为“car”的桌子和一个名为“car”的模型,以及使用这些的最佳方式是什么?它们应该是同一个类,还是应该使用部分,或者我应该有单独的模型类和单独的类来表示数据库表,你能给我举个例子吗?
【问题讨论】:
标签: asp.net-mvc entity-framework asp.net-mvc-4
我一直将视图模型保存在与实体数据模型不同的类库(具有单独的命名空间)中。这样,如果数据库架构发生变化(几乎总是发生),我不会破坏我的观点。在数据对象和视图模型之间移动数据我更喜欢Automapper。如果您缺少源映射的目标对象上的属性,它甚至会给您单元测试失败,从而帮助您及早发现错误。
【讨论】:
我发现在您的解决方案中专门为数据访问设置一个单独的项目通常是一种很好的做法。
我通常将其设置为类库项目,其结构类似于以下结构。
/ProjectNameData
/Models/ -- POCO's go here
/Mapping/ -- EntityTypeConfiguration classes go here
/Repositories/ -- Repositories go here
/ProjectContext.cs
然后我将拥有另一个用于服务的类库以及我的主应用程序项目。
【讨论】: