我的数据库有一个不可为空的字段,但可以包含一个空字符串。当我尝试使用 connection.SaveChanges() 保存记录时,我收到一个异常提示“MyField 字段是必需的”。
我创建了一个 BuddyClass 如下,但我仍然收到消息:
namespace MyNamespace {
[MetadataType(typeof(QuesT_Metadata))] public partial class QuesT { }
public class QuesT_Metadata {
[Required(AllowEmptyStrings = true)
public string MyField { get; set; }
}
}
我可以使用 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) 进行数据验证