随着我越来越多地学习ASP.NET MVC,我更多地介绍了数据注释.
特别在MVC中,它们用于验证,这给我一些关注.
最大的是因为我喜欢把我的模型作为POCO,尽可能干净.
现在,如果我在解决方案中的多个项目(即Web前端,桌面应用程序,Web服务)中共享了这些模型类,该怎么办?
基本上我担心的是,针对我的MVC前端应用程序的注解可能会影响一些其他项目,如动态数据等.
我已经将我的Business Objects与我的数据库模型(本例中为LINQ2sql)分开了,所以我不用担心对我的DAL有影响的注释,但我想知道我对其他项目的恐惧是否合法.
特别在MVC中,它们用于验证,这给我一些关注.
最大的是因为我喜欢把我的模型作为POCO,尽可能干净.
现在,如果我在解决方案中的多个项目(即Web前端,桌面应用程序,Web服务)中共享了这些模型类,该怎么办?
基本上我担心的是,针对我的MVC前端应用程序的注解可能会影响一些其他项目,如动态数据等.
我已经将我的Business Objects与我的数据库模型(本例中为LINQ2sql)分开了,所以我不用担心对我的DAL有影响的注释,但我想知道我对其他项目的恐惧是否合法.
另外我认为,将一个必需的错误信息绑定到你的模型是有点疯狂.
我想如果我为每个项目(Web,桌面,Web服务等)创建了单独的模型,那么这个问题将会解决,但这实际上是我目前共享的模型的直接副本.
这是正确的道路吗?
这将对我的解决方案产生很大的影响(从一个模式到另一个模式的映射很多).
你怎么看?
我想听听你对数据注释的好坏使用.
解决方法
我发现数据注释方便于规则从不根据上下文(如电子邮件地址)更改的模型.
但是对于更复杂的验证(多个字段,需要DB访问等),我使用Entity validation with visitors and extension methods中描述的访问者模式.