none
EF中验证的问题! RRS feed

  • 问题

  • 大家好, 我是初学者.

    请问在MVC和EF来开发, 验证和一些相应的操作可以在Model中干..也可以在EF下的DBContext中干..

    有点困惑, 有什么区别, 怎么区分.

    谢谢!

     

    不知道我说的清不清楚..呵呵..

    • 已移动 Min ZhuModerator 2011年6月9日 6:20 data question (发件人:.NET Framework 一般性问题讨论区)
    2011年6月7日 1:43

答案

  •  验证和一些相应的操作可以在Model中干

    你好, 你说的这个是在MVC的Model层运用DataAnnotations吧,这个是在MVC开发中经常运用的方式,也是较为普遍和简单的方式。如果想学习的话可以参考这篇文章:

    http://hi.baidu.com/maoyu0722/blog/item/f96e471d7a7990e41ad57646.html

    也可以在EF下的DBContext中干..

    上面说的在EF的DBContext中干,我想你说的是用Fluent API吧, 如果是的话,可以谈谈我的观点:

    如果用Code First的话,DataAnnotations和Fluent API都可以用来做简单的验证和阐述实体类(映射到数据库中也就是表)之间的关系。

    但是我觉得,虽然这样,他们还是各有长处, 比如DataAnnotations在简单的验证方面(字段长短等)很简单很实用,Fluent API在验证主外键关系上比较清晰一目了然。所以我觉得在开发的时候如果能发挥他们各自的长处,那么会给你的开发过程省去很多不必要的麻烦。

    谢谢, 


    Jackie Sun [MSFT]
    如果您对我们的论坛在线支持服务有任何的意见或建议,请通过邮件告诉我们。
    MSDN 论坛好帮手 立刻免费下载  MSDN 论坛好帮手


    2011年6月9日 9:33
    版主

全部回复

  •  验证和一些相应的操作可以在Model中干

    你好, 你说的这个是在MVC的Model层运用DataAnnotations吧,这个是在MVC开发中经常运用的方式,也是较为普遍和简单的方式。如果想学习的话可以参考这篇文章:

    http://hi.baidu.com/maoyu0722/blog/item/f96e471d7a7990e41ad57646.html

    也可以在EF下的DBContext中干..

    上面说的在EF的DBContext中干,我想你说的是用Fluent API吧, 如果是的话,可以谈谈我的观点:

    如果用Code First的话,DataAnnotations和Fluent API都可以用来做简单的验证和阐述实体类(映射到数据库中也就是表)之间的关系。

    但是我觉得,虽然这样,他们还是各有长处, 比如DataAnnotations在简单的验证方面(字段长短等)很简单很实用,Fluent API在验证主外键关系上比较清晰一目了然。所以我觉得在开发的时候如果能发挥他们各自的长处,那么会给你的开发过程省去很多不必要的麻烦。

    谢谢, 


    Jackie Sun [MSFT]
    如果您对我们的论坛在线支持服务有任何的意见或建议,请通过邮件告诉我们。
    MSDN 论坛好帮手 立刻免费下载  MSDN 论坛好帮手


    2011年6月9日 9:33
    版主
  • 感觉默认的DataAnnotations验证功能太简单了,很难完成任务。

    比如 Page这个对象中的Url,要求Url在整表中保持唯一,这样还好说,如果是这样:Module>Page 他们是一对多的关系,Url要求在特定Module下保持唯一,就挺麻烦的。

    2011年6月10日 0:53
  • 你好,我觉得用DataAnnotations默认的验证功能做一些简单的,比较常规的验证还好,因为在封装的时候微软的工程师也不是神人,也不能考虑周全各种各样的需求,众口难调,难免有些需求不好满足。

    对于复杂的,具有个性化的验证还是要自己动手写一下。

    谢谢,


    Jackie Sun [MSFT]
    如果您对我们的论坛在线支持服务有任何的意见或建议,请通过邮件告诉我们。
    MSDN 论坛好帮手 立刻免费下载  MSDN 论坛好帮手




    2011年6月10日 3:06
    版主