问题标签 [buddy-class]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
280 浏览

asp.net-mvc-2 - Getting buddy class information?

I'm trying to read buddy class metadata information for usage outside of the normal asp.net mvc 2 validation process. I thought it would be as simple as saying:

That works, but is returning me the entire types metadata information and not just what is in the buddy information. According to the MVC2 source ( It uses the buddy class support from DataAnnotations, ) it should support getting the buddy data information but I don't see the part in the code where it reflects into the Metadatatype() attribute.

Generally confused here. Did I miss an overload or something?

0 投票
4 回答
10210 浏览

asp.net-mvc - 当我使用 Validator.TryValidateObject 时验证不起作用

DataAnnotations 不适用于伙伴类。以下代码始终验证为真。为什么 ?

var isValid = Validator.TryValidateObject(new Customer(), Context, results, true);

这是伙伴班。

这是另一个有相同问题的线程。但没有答案。 链接文本

0 投票
2 回答
2329 浏览

c# - DataAnnotation 属性好友类陌生化 - ASP.NET MVC

鉴于这个由 EntityFramework T4 模板自动生成的 POCO 类(没有也不能以任何方式手动编辑):

请注意,“ACNumber”是一个命名错误的数据库字段,因此自动生成器无法生成正确的显示名称和错误消息,应该是“Account Number”。

所以我们手动创建这个好友类来添加无法自动生成的自定义属性:

其中 [NumberCode] 是一个简单的基于正则表达式的属性,只允许使用数字和连字符:

现在,当我加载页面时,DisplayName 属性正常工作 - 它显示来自伙伴类的显示名称,而不是生成的类。

StringLength 属性无法正常工作 - 它显示来自生成的类的错误消息(“ACNumber”而不是“Account Number”)。

但是 buddy 类中的 [NumberCode] 属性甚至没有应用于 AccountNumber 属性:

为什么prop.Attributes.OfType<ValidationAttribute>()集合不包含 [NumberCode] 属性?NumberCode 继承 RegularExpressionAttribute 继承 ValidationAttribute 所以它应该在那里。

如果我手动将 [NumberCode] 属性移动到自动生成的类,那么它会包含在prop.Attributes.OfType<ValidationAttribute>()集合中。

所以我不明白为什么这个特定的属性在伙伴类中不起作用,而伙伴类中的其他属性起作用。以及为什么此属性在自动生成的类中有效,但在伙伴中无效。有任何想法吗?

另外,当 StringLength 没有时,为什么 DisplayName 会被好友覆盖?

0 投票
2 回答
1673 浏览

c# - 在 Buddy 类中添加 LINQ 自动生成的值标记 [Column(IsDbGenerated=true)]

是否可以[Column(IsDbGenerated=true)]使用伙伴类(通过链接到 LINQ 类[MetadataType(typeof(BuddyMetadata))])来装饰 LINQ 生成类的字段?

我的目标是能够清除和重新填充 LINQ ORM 设计器,而不必每次都手动设置“自动生成值”属性来重新确定某些列是自动生成的事实。

谢谢!

0 投票
2 回答
626 浏览

c# - Buddy Classes 是否仅适用于 DataAnnotations?

伙伴类是否仅适用于数据注释或任何属性?我一直在尝试将ColumnAttribute附加到我的好友类中的一个字段,但它似乎没有在原始类中得到处理。这两个类通过 MetadataType 链接。

0 投票
1 回答
566 浏览

c# - 如何在 ASP.NET MVC3 中从我的数据库中自动生成 DataValidation“好友”类?

我有一个网站,它的视图直接从实体框架创建的对象生成。在阅读Scott GU 的这篇博客之后,似乎让 DataValidation 工作的最佳方法是从 POCO 对象开始。(在链接上搜索 Buddy Class 一词)

我可以以某种方式自动生成我的好友课程吗?还是我开始涉足 MVC 时是错误的?

0 投票
1 回答
1822 浏览

validation - MVC3 好友类、视图模型和验证

我目前正在开发我的第一个 MVC 项目,这只不过是一个用于我自己学习目的的美化博客。我从数据库优先的方法开始,因为那时我什至不知道代码优先的存在。这让我对如何处理验证有些困惑。

我在数据库中有一个表,它有一个由 EF 为我生成Articles的相应类。Article我还有一个ArticleViewModel类,它对Article. 虽然我有简单的 CRUD 操作,但他们目前使用的是强类型Article模型,而不是ArticleViewModel数据验证。

今天做了一些研究来评估我的选择后,我发现了以下 问题这篇博文。所以看起来我可以将该MetadataType属性应用于 EF 生成的类并将我的验证放在那里,但我一直在阅读包含验证的伙伴类是不好的做法。我不知道为什么会这样,但如果是这样的话,这是否意味着我应该忽略伙伴课程并做类似以下的事情?

然后根据需要将 DataAnnotations 应用于 ArticleViewModel 并更新我的控制器/视图以使用ArticleViewModel

提前感谢您的任何意见。:)

0 投票
1 回答
906 浏览

asp.net-mvc-3 - 首先使用数据库为自动生成的 desgner.cs 创建伙伴类

我想为 Datafirst Entity Framework 中自动生成的 Designer.cs 创建一个伙伴类,以使用数据注释实现验证。

我在 google 上找到的解决方案包含具有简单属性的示例,例如

而在 Designer.cs 中生成的属性中包含一些逻辑。对于前

请指导如何为上述属性创建伙伴类。

0 投票
1 回答
674 浏览

asp.net-mvc - 在 VB.NET MVC 应用程序中创建实体框架伙伴类以扩展验证

在实体数据模型中,我有以下复杂类型

我正在 VB.Net 中编写一个 MVC 4.0 应用程序

我想在我的解决方案的另一个项目中为复杂类型定义添加验证

我试图在我的 MVC 项目中定义一个部分类,但即使它编译我也知道它是错误的,因为脚手架模板不会生成所有属性

在过去的 6 个月里,我已经从传统编码转向面向对象编码,我真的很难克服这样的问题。感谢指导我哪里出错了。我试过添加一个命名空间。

0 投票
2 回答
436 浏览

asp.net - Buddy Class 中的必需属性不适用于 Entity Framework 5 和 ASP.NET

我的数据库有一个不可为空的字段,但可以包含一个空字符串。当我尝试使用 connection.SaveChanges() 保存记录时,我收到一个异常提示“MyField 字段是必需的”。

我创建了一个 BuddyClass 如下,但我仍然收到消息:

我可以使用 ErrorMessage 属性来更改引发的错误中的消息,因此我知道 Buddy Class 工作正常,但显然Required 属性不是。

我也尝试包含属性 DisplayFormat(ConvertEmptyStringToNull = false),但得到了相同的结果。

我以前做过,而且下面的第一个参考似乎说它应该工作,所以我很难过。任何人都可以帮忙吗?

参考文献(只有前两个似乎直接相关,但其他可能仍然有帮助):

http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.requiredattribute.allowemptystrings.aspx
http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.displayformatattribute .convertemptystringtonull.aspx
如何使实体框架属性不为 NULL,但在表单提交中不需要
数据注释属性在 MVC 应用程序中使用伙伴类元数据不起作用
EF伙伴类上使用自定义属性 (AttributeTargets.Class) 进行数据验证