我一直在寻找Pro Dinner解决方案作为我正在进行的项目的参考,我认为它很适合..但我不太了解项目结构......从我可以看到你将有三个代表单个实体的对象
所以从我所看到的,你说你有一个人类......你会有......
Core中的Person实体,Data中的Person实体和WebUI中的PersonViewModel ..
这是对的吗?我错过了什么吗?
让Core只包含一个Person实体会更好吗?
如果有人有其他建议请告诉我:)
感谢。
答案 0 :(得分:4)
我已经快速下载了ProDinner,以了解源代码及其架构。
我没有详细查看所有内容,也没有运行应用程序。
从事物的外观和回答你的问题,我的理解是你只需要在核心内创建一个Person
实体。
您不必在数据层中创建Person
实体但您必须在DbSet<Person>
内添加DbContext
(恰好住在数据层内。)
对于ViewModel,了解ViewModel应该是UI的表示非常重要。
例如,假设您的Person
实体有25个属性。这是否意味着您的视图会自动显示(或使用)这25个属性?
如果答案是肯定的,那么您可以直接向Person
实体强烈输入您的视图或创建PersonViewModel并将Poco中的25个属性复制到PersonViewModel中。反过来,使您的View强烈键入此PersonViewModel。
另一方面,如果您的View计划仅显示(或使用)25个属性中的10个属性,则创建PersonViewModel并仅创建这10个属性。
正如我之前所说,ViewModel应该是您的UI(View)的表示,因此知道您的View将显示/使用10个属性,拥有25个属性的PersonViewModel是没有意义的。
并非每个人或团队都喜欢直接向Poco强烈输入View,但请记住它会起作用。这个选择取决于您(或您的团队)。
希望这有助于澄清。