加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

entity-framework – 从数据库更新模型(数据库优先)

发布时间:2021-04-02 00:31:19 所属栏目:编程 来源:网络整理
导读:我正在使用MVC3 VS2010和EF4.1,我使用SQL Server创建了我的数据库,然后将其导入MVC3 Web应用程序. 我在这里遇到了一个挑战,当我从数据库更新模型时,我确实丢失了所有模型文件修改,例如,如果我在某些模型中使用属性进行验证,或者所有这些都被新模型属性覆盖.

我正在使用MVC3 VS2010和EF4.1,我使用SQL Server创建了我的数据库,然后将其导入MVC3 Web应用程序.

我在这里遇到了一个挑战,当我从数据库更新模型时,我确实丢失了所有模型文件修改,例如,如果我在某些模型中使用属性进行验证,或者所有这些都被新模型属性覆盖.

无论如何从数据库更新模型而不丢失模型的信息?

要么

我应该在哪里定义模型验证,而不是直接使用模型的文件?

解决方法

更新:由于这仍然相对受欢迎,我已经创建了一篇关于此的博客文章.

http://jnye.co/Posts/19/adding-validation-to-models-created-by-entity-framework-database-first-c

如果要验证模型,而不使用viewModel,请使用部分类来定义验证属性.例如:

假设你有一个像这样的模特

public class User {
    public string Name { get; set; }
}

如果你想在其上放置一个字符串长度验证器,你需要创建一个部分类并使用MetadataTypeAttribute(它存在于System.ComponentModel.DataAnnotations中)

以下类应在其自己的单独文件中定义,而不是与自动生成的模型放在同一文件中.

[MetadataTypeAttribute(typeof(UserMetadata))]
public partial class User {
}

然后,您可以在UserMetadata类中定义验证,如下所示

public class UserMetadata{
    [StringLength(50)]
    public string Name {get; set;}
}

编辑

我刚刚发现这篇文章更详细地解释了解决方案
http://themonitoringguy.com/tips-tricks/validating-microsoft-entity-framework-objects-c-mvc/

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读