2017-08-10 5 views
1

データベースモデルをコードファーストで定義して、どのユーザーがレコードデータのスペシャリストとして割り当てられているかを表示しようとしています。ASP.NET MVC EF 6:ルックアップテーブル/モデルを定義する

public class User 
{ 
    public int ID { get; set; } 
    public string userName { get; set; } 
    public string firstName { get; set; } 
    public string lastName { get; set; } 
    .... 
} 

次に私はドロップダウンリストを使用してユーザが編集することができ、専門家が割り当てられるべきデータを定義する2つの(単純な)モデルを定義している: Iは、ユーザにとって非常に単純なモデルを有する

public class Order 
{ 
    public int ID { get; set; } 
    public string orderNumber { get; set; } 
    public int specialistID { get; set; } 
    public virtual User specialist{ get; set; } 
} 

public class Part 
{ 
    public int ID { get; set; } 
    public string partNumber { get; set; } 
    public string description { get; set; } 
    public int specialistID { get; set; } 
    public virtual User specialist{ get; set; } 
} 

モデル間のどのような関係を、ユーザーモデルの各テーブルのナビゲーションプロパティなしで使用できますか?

関係を定義するために追加のテーブルを使用する必要がありますか:User.Id-Order.specialistIDと関係:User.Id-Part.specialistID?

Entity Frameworkでは、よりスマートな方法が用意されていますか?

ご回答いただきありがとうございます。デフォルトでは パスカル

+1

ナビゲーションプロパティはオプションです。あなたのモデルとデフォルトのEF規約では、すでに2つの「一対多の」関係を定義しています。そのような関係は、別個のテーブルを必要としません( 'many'副テーブルのFKカラムで表されます)。あなたのモデルには具体的な問題がありますか?はいの場合は、質問を編集して追加してください。 –

+1

アイワンありがとうございます。あなたの答えは私を大いに助けました。 –

+0

編集したデータと専門家が多対1か一対一かを確認できますか? – risa

答えて

1

あなたはEntity Frameworkのは、ユーザーにエンティティクラスに仮想プロパティを追加し、仮想ICollectionを多対1のテーブルにforignキー制約を追加します。

関連する問題