1

これが私のエンティティクラスの1つです。

public class Customer
{
    public int Id { get; set; }
    [Required]
    public int CustomerNumber { get; set; }
    [Required]
    [StringLength(50)]
    public string Prename { get; set; }
    [StringLength(50)]
    public string Surname { get; set; }
    public DateTime? Birthday { get; set; }
    public bool Active { get; set; }
    [Column(TypeName = "image")]
    public byte[] Image { get; set; }
}

オブジェクトを追加した後、次の行を使用して変更を保存しました。

((IObjectContextAdapter)context).ObjectContext.SaveChanges();

すべてがうまくいきました、私は顧客を救うことができました。

さて、私はそれを次のように変更する必要があります。

context.SaveChanges();

前の行は検証されておらず、2番目の行だけが検証されていることがわかりました。DbContext

今、私はもう顧客を救うことができないという問題を抱えています。その理由は、私がcontext.SaveChanges();ラインで例外を受け取ったからです。

私は次のエラーを見つけましたEntityValidationErrorErrorMessage ="フィールドImageは、最大長が'4000'の文字列または配列タイプである必要があります。" 私の質問は、この1つのエンティティのみの検証を回避するにはどうすればよいかということをよく知っています。エンティティ全体の検証を回避する可能性があることは知っていますが、それは考えではありません。私は誰かが私を助けてくれることを願っています、私はこれで立ち往生しています。

4

2 に答える 2

1

CustomValidationAttributeを使用できます。ここに例があります。

成功を返すだけのメソッドを作成できます。

于 2012-06-12T18:40:08.023 に答える
0

ValidateOnSaveEnabledコンテキストの構成プロパティを次のように設定して、検証を無効にすることもできますfalse

Context.Configuration.ValidateOnSaveEnabled = false;
于 2016-06-30T05:19:23.107 に答える