gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 07:24:58 25 4
gpt4 key购买 nike

我正在将MVC3 VS2010与EF4.1配合使用,已使用SQL Server创建了数据库,并将其导入到MVC3 Web应用程序中。

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

是否有从数据库更新模型而不丢失模型信息的方法?

或者

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

最佳答案

更新:因为它仍然比较流行,所以我为此创建了一个博客文章。

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

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

假设您有一个像

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/

关于entity-framework - 从数据库更新模型(数据库优先),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6758525/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com