0

我正在构建一个包含 3 个项目的 MVC Web 应用程序。一种用于 GUI,一种用于 BusinessLogic,一种用于数据访问。

对于我的数据访问,我有一个由 EF 生成的文件,因此我有一个名为“Customer”的生成类。要为这个类制作验证属性,我需要制作 MetaDataType(这需要在同一个命名空间中完成,因此我必须在 DAL 层中完成) - 通过这样做,我从我的 GUI 引用数据访问层这破坏了拆分项目的整个想法,因为我的 GUI 现在同时引用了我的 DAL 和 BL 层。无论如何,我可以将我的 GUI 和 DAL 层分开,但仍然可以使用 [Required] 等验证属性吗?

提前致谢。

4

2 回答 2

2

这就是ViewModel的意义所在。但这意味着您将拥有一组新的 DTO 用于视图控制器通信……恕我直言,这是一件好事,因为您的视图不应该对真实的域模型一无所知。

关于让你的观点与模型交流的所有不同方式,请看一下这个

于 2010-12-14T19:43:18.250 回答
2

如果您使用的是 .NET 4 (EF 2),则可以在可以跨项目共享的单独类库中生成 POCO 实体。这不需要对 DAL 的依赖。看我之前的回答:

ASP.Net 分层应用程序 - 在层之间共享实体数据模型

特别是3.POCO模板,包括如何移动到单独的项目:http: //blogs.msdn.com/adonet/pages/feature-ctp-walkthrough-poco-templates-for-the-entity-framework.aspx

于 2010-12-14T19:53:17.287 回答