2017-06-09 5 views
0

私はコードの最初のエンティティモデルに問題があります。私はそれを修正する方法を頭の中に入れようとしています。私は、コード-最初にEF6でこれをやってみました...今コード最初のEF6の不思議なテーブルのレイアウト

CarModels 
ID, 
Name 

CarFactory 
ID 
Name 

CarFactoryModels 
CarFactoryID 
CarModelID 

、私のクラスは次のとおりです:DB-Firstモデルで

私は、次のを持っているでしょう

public class CarModel 
{ 
public int CarModelId {get;set;} 
public string Name {get;set;} 
} 

public class CarFactory 
{ 
public int CarFactoryId {get;set;} 
public string Name { get;set;} 
public List<CarModels> ModelsMade {get;set;} 
} 

ときに私をマイグレーションを生成して適用します。データベースでは、各自動車工場にUNIQUE個の個人があり、スキーマは次のようになります。

Table Car Models 
int ID AutoIncrement 
varchar(255) Name 
int CarFactoryID REFERENCES CarFactory_ID 

モデルは工場固有のものであるため、明らかに間違っています。

質問:どのように私は、コード-最初EF6がモデルへの参照を持つように継続しながら、予想されるスキーマを認識

作るのですか?

+1

で行うことができます述べたように、[設定作った多対多の関係](http://www.entityframeworktutorial.net/code-first/configure-many-to-many-relationship-in-code-first.aspx) –

+0

それは私が必要とするかもしれないように見えます。私はそれを試して、あなたに戻ってきます。ありがとうIvan – willthiswork89

答えて

0

あなたCarFactoryは、それが持っているもののモデルを知っているが、あなたのCarModelは、工場出荷時への参照を持っていません。

public class CarModel 
{ 
    public int CarModelId { get; set; } 

    public string Name { get; set; } 

    public virtual ICollection<CarFactory> CarFactory { get; set; } 
} 

public class CarFactory 
{ 
    public int CarFactoryId { get; set; } 

    public string Name { get; set; } 

    public virtual ICollection<CarModel> ModelsMade { get; set; } 
} 

「バーチャル」という言葉をどのように参照しているかについても注意してください。あなたはそのhere

EDITについて読み取りを持っている:私はそれが多対多のあなたは車のモデルを見てみましょう、複数の工場

+0

しかし車のモデルは複数の工場で作ることができる。だから私は同じ車のモデルを持つ2つの工場を持つことがあります。だからモデルは、車の工場 – willthiswork89

+0

への参照を持ってはいけないので、私は実際にモデルから工場を参照していない場合でも、正しいテーブル構造を得るために工場への参照を保持する必要があります正しいですか? – willthiswork89

+0

私はそう信じます、はい。私は最近非常に似たようなことに取り組んできましたが、これは基本的に私のセットアップです。 – Oyyou