gpt4 book ai didi

asp.net-mvc - MVC 3 - Entity Framework - 脚手架 - 验证问题

转载 作者:行者123 更新时间:2023-12-04 06:19:00 25 4
gpt4 key购买 nike

我正在开发一个带有 Entity Framework 的 MVC 3 应用程序,我想使用 Scaffolding。

为了解决“类型未映射问题”,我完成了找到的过程 here .现在一切正常。

默认验证不起作用,必填字段触发异常而不是在 ValidationSummary 上写一些东西,所以我想使用属性添加我的自定义验证。
问题是关于“类型未映射问题”的解决方案为我的每个实体添加了 2 个 .tt 文件和一个 .cs 文件,每次更改和保存模型 (.edmx) 时都会重新创建这些文件,因此我无法放置我的数据注释验证器属性在这些类中,或者我无法创建具有某些属性的新部分类,因为它们已经定义。

我能怎么做?我可以使用 jquery 移动验证客户端吗?或者也许有一种解决方法可以将数据注释验证器属性添加到我的实体,我更喜欢这种方式来获得更多验证的可见性。

提前致谢

最佳答案

我没有使用过 DbContext 生成器,但在 POCO 生成器中遇到了类似的问题。假设解决方案类似:

修改创建实体类的 T4 模板,为该类添加一个额外的属性:

[MetadataType(typeof(CustomerMetaData))]

其中“客户”是实体的名称。

然后,为每个实体手动创建元数据类。如果需要,您实际上也可以为此使用 T4 模板,但不要让它一直运行。

元数据类看起来像这样......
public class CustomerMetaData
{

[StringLength(150, ErrorMessage="Maximum length is 150 characters.")]
[Required(ErrorMessage="CustomerName is required.")]
public virtual string CustomerName
{
get;
set;
}
public virtual Nullable<int> Type
{
get;
set;

}

// ... etc ...
}

如您所见,您将规则附加到 MetaData 类,从而将其从生成的实体类中抽象出来。

关于asp.net-mvc - MVC 3 - Entity Framework - 脚手架 - 验证问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6846684/

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