2017-08-29 9 views
0

に変換することはできません私はEFのこつを取得していますが、私はちょうど問題に遭遇していると、誰かが助けることができる場合、私は疑問に思う:はMODELAからModelB Entity Frameworkのエラー

を私はこのような二つのモデルを持っています

public class Car 
{ 

    public int Id {get; set;} 
    public string Manufacturer {get; set;} 
    public string City {get;set;} 

} 

    public class CarInfo 
    { 

     public int Id {get; set;} 
     public int CarId {get; set;} 
     public string Colour {get;set;} 
     public string Variant {get;set;} 
     public virtual Car Car {get;set;} 

    } 

は、私はこのような車のテーブルにデータを挿入しています:

int id = 0; 
var _car = new Car() 
{ 
    Manufacturer = "BMW", 
    City = "London" 
}; 
db.Add(_car); 
db.SaveChanges(); 
id = _car.Id; 

そして今、私はこのようなCarInfoテーブルにデータを保存しようとしています:

CarContext db = new CarContext(); 
var _carInfo = new CarInfo() 
{ 
CarId = id, 
Colour = "Blue", 
Variant = "Sport" 
}; 
db.Add(_carInfo) //I'm getting an error here (red line under code) error: Cannot Convert from CarInfo to Car. 

私は何が欠けているのですか? Entity Frameworkを使用して達成することさえ可能ですか?

+1

'db.add(_carInfo)'は、 'db'を定義してどのように移植したかを示してください。 – mjwills

+0

'db'変数とは何ですか? (1)あなたがレコードを追加するのと同じオブジェクト上で 'SaveChanges()'を呼び出すのは不思議です。 (2) 'add()'メソッドは小文字です。どのようなカスタムのものを作成し、それをどのように使用する必要がありますか? – David

+0

'db'のコンテキストは何ですか? –

答えて

3

私にあなたのCarContextクラスであなたのDbSetのプロパティを表示してください、のようなものである必要があり、それは

public DbSet<Car> Cars { get; set; } 
public DbSet<CarInfo> CarInfos { get; set;} 

する必要があり、EFは、メソッドを追加します。

については
db.Cars.Add(_car); 

db.CarInfos.Add(_carInfo); 
+0

はい、あなたは正しいです!私は愚かな..私は間違ったテーブルを参照していた。 – 1future

+0

@ 1future私の答えを解決してマークしてください:) –

関連する問題