我已经开始研究一个结构如下的应用程序:
UI - ASP.Net MVC Web应用程序服务层 - WCF实体 - 一个简单的类库(由WCF层公开)数据层 - 用于数据库交互 .
直到现在,我在我的Web应用程序的Models文件夹中定义了我的模型,但是现在我们决定通过WCF服务公开它们(因为这个应用程序也会被其他应用程序使用),我需要一些帮助 .
我尝试将所有模型定义放在由WCF服务公开的实体层中,并使用数据注释和DataContract属性进行装饰 . 现在,我可以引用这些实体将它们与我的视图绑定 . 但是,数据注释验证对我不起作用 .
有人可以帮我解决这个问题吗?我一直在通过网络搜索解决方案,但几乎所有人都告诉我在Web应用程序中添加实体层的引用,这将是我们不想要的紧密耦合 . 另一个选项是在我的Web应用程序的models文件夹中重新定义所有带有数据注释的实体,这将是重复的编码类型 .
有没有更好的方法呢?任何帮助赞赏 .
Update:
为了使用WCF实体,我在我的Web应用程序中添加了一个服务引用 . 现在,只是通过使用[Required]属性显式地修改我的数据成员来检查我修改了Reference.cs文件,它运行正常 . 但是,我知道每当生成服务代码时,这些更改都会消失 .
有什么方法可以在这里引入Data Annotation属性吗?请帮助 .
1 回答
至于我这是个坏主意,转让的DTO,MVC的模型 .
看起来像类似的问题
Why You Shouldn’t Expose Your Entities Through Your Services
DTO’s Should Transfer Data, Not Entities