首先,我想问一下实体类和我们的模型类有什么区别?
当我使用在数据库方法中的实体框架生成的实体类上添加数据注释时,它会在每次“从数据库更新”时消失,并且对于此用户定义的模型类可以使用但我不知道将它们与生成的实体类一起使用。
答案 0 :(得分:0)
实体类是一个直接与真实对象关联的类,它与业务逻辑相关联并保存有关系统的信息。实体通常用于在对象和数据库中的表之间建立映射。
模型只是与视图和控制器相关联的类,这些视图和控制器定义或包含对象的定义以及状态发生变化时。在进入业务/数据访问层之前,这些可以保存您的数据注释以进行验证...
这引出了我的下一个问题,如果使用EF使用“数据库优先”方法生成数据模型类,则无法将数据注释属性直接应用于类。由于EF Designer会生成模型类,因此您对模型类所做的任何更改都将被覆盖,如您所遇到的那样。如果要将验证器与EF生成的类一起使用,则需要创建元数据类:http://blogs.microsoft.co.il/blogs/gilf/archive/2011/01/20/adding-metadata-to-entities-in-the-data-model.aspx
希望有所帮助。
丹尼