0

EF Power Toolsを介してデータベースからPOCOを生成しており、それらの調整と拡張を開始する準備ができています。

このQ/Aは、最初の質問(パーシャルを追加する方法)を通過しますが、提供された回答がMVC4プロジェクトで変更されるのではないかと思います。

しかし、その答えは特に検証に関係しています。また、生成されたコンストラクターを微調整する必要があります-この質問と同様です。私のデータベーススキーマユーティリティは、次のようにユーザーオブジェクトを構築します。

    public User()
    {
        this.Addresses = new List<Address>();
        this.Emails = new List<Email>();
        this.Institutions = new List<Institution>();
        this.Orders = new List<Order>();
        this.Phones = new List<Phone>();
    }

機関を除いて、これらはすべて正しいでしょう。ユーザーは多くの電話や電子メールなどを持つことができます。ただし、1つの機関にのみ属することができます。

機関のリストが作成されないように、このコンストラクターを再配線する方法はないと思います。したがって、「Institution」(単一)プロパティを追加し、Institutions.SingleOrDefaultと、おそらく.Count> 1でのフラグ付け/処理を割り当てるメソッドを作成しますか?

それで、私の部分クラスのコンストラクターは、生成されたクラスと同じように動作しますか?それは新しい上で実行されますか?

どうも

フォローアップするために:コード生成の背後にあるFK。私の教育機関では、ユーザーIDフィールドを介して、「PrimaryContact」に基づいて多くのユーザーとキーをプライマリ連絡先に戻すことができます。

機関:CONSTRAINT [FK_Institutions_Users] FOREIGN KEY([idPrimaryContact])REFERENCES [dbo]。[Users]([ID])

ユーザー:CONSTRAINT [FK_Users_Institutions]外部キー([idUserInstitution])参照[dbo]。[機関]([ID])

4

1 に答える 1

2

データベースはユーザーが複数の機関を持つことを可能にするので、EF動力工具はこの関係を作成しています。これは、InstitutionテーブルにUserIdのFKがあるためだと思います。これが本当に1:1または1:0.1の関係である場合は、データベースを変更して、代わりにUserテーブルがInstitutionテーブルへのFKを持つようにする必要があります(オプションの場合はnull可能)。

これがオプションでない場合は、これを行う他の方法がいくつかあります。

テンプレート化された方法で、またはこの単一のエンティティでこれを実行できるようにする必要がありますか?

これを繰り返し行う必要がある場合は、エンティティオブジェクトを生成するTTファイルを変更してみてください。 RowanMillerはこれについて素晴らしい投稿をしました。

どちらの方法でも、次のようにアイテムを変更できます。

 public virtual List<Institution> Institutions { get; set; }

public Institution Institution
{
    get { return Institutions.SingleOrDefault(); }
}

次に、作成したInstitutionプロパティにバインドします。

于 2012-08-03T15:35:12.863 に答える