2

ここここを読んで、私の問題の概要を簡単に把握し、Ajaxからのモデルバインディングと言ったときの意味を正確に確認してください。

javascriptからのモデルバインディングを可能にするために外部キーフィールドをnull許容にするのは悪い考えですか?

たとえば、次のajax呼び出し中にPersonオブジェクトにバインドする必要があります...(PersonクラスはEntity Frameworkから作成されます)

public ActionResult Create(Person personToCreate)
{
    //Create person here
}

Persondbに外部キーであるオブジェクトがあった場合、ajax呼び出しからの他のデータと一緒にオブジェクトPetを渡すことはできません。Petしたがって、PetがDBでnull許容でない限り、へのバインドは機能しPersonません。

だから私が知りたいのは...モデルバインディングを行うために、JavaScriptから渡すことができないdbフィールドをnullにする必要がありますか?または、ベストプラクティスに従うために、カスタムモデルバインダーを作成し、オブジェクトの「フラッター」バージョンにバインドする必要がありますか?オブジェクトのフラットバージョンの例:

public class SimplePerson() {
   private string firstName;
   private string lastName;
   private string petName;
}

私がこれを尋ねる理由は、Entity Frameworkで作成されたクラスの多くに外部キーが含まれているためです。つまり、これらのクラスのほぼすべてのフラットな複製を作成する必要があり、DRYプリンシパル全体に反するようです。

4

1 に答える 1

2

あなたがリンクして投稿したものを読みました。頭から離れて良い解決策を考えることはできませんが、AJAXのために基盤となるデータベースを変更するという概念全体が私を不快にさせます。それは良い答えではないことを私は知っています、私は今自分自身でいくつかのEF設計の問題に苦しんでいます、そして私がモデルのためにデータベースを変更したいと思うことが何度かありました、しかしそれをすることは常に来ました過去に私を噛むために戻って。

于 2009-07-15T20:17:49.563 に答える