私のデータベースには、null許容ではないフィールドがありますが、空の文字列を含めることができます。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)も含めてみましたが、同じ結果が得られました。
私は以前にこれを行ったことがありますが、以下の最初の参照もそれが機能するはずだと言っているようですので、私は困惑しています。誰か助けてもらえますか?
参考資料(最初の2つだけが直接関連しているように見えますが、他の2つはまだ役立つ場合があります):
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 EntityFramework
プロパティをNOTNULLにする方法、ただしフォーム送信では必須では
ないMVCアプリでバディクラスメタデータを使用してデータ注釈属性が機能しない
EFバディクラスでカスタム属性(AttributeTargets.Class)を使用したデータ検証