2009-03-28 13 views
0

私は2つのテーブル、車の異なるプロパティを含む車のテーブル、同じ名前のテーブルの外来キーであるcarmodeldefinitionを持っています。 cardefinitionテーブルには、さまざまな車とモデルが含まれています。私はそれらをエンティティフレームワークにマッピングしました。私はcarmodeldefinition以内に新しい車を追加しようとするとエンティティフレームワークと外部キー

image

は、それは単にちょうどそれが見つけたものを使用する代わりに、新しいcardefinitionを追加します。そのためのコードは下記の通りです:

DataLayer.Car car = new DataLayer.Car(); 
    car.URL = carBulk.URL; 
    car.SellerCity = carBulk.SellerCity.ToString(); 
    car.Color = carBulk.Color.ToString(); 
    car.SellerStreet = carBulk.SellerStreet; 
    car.SellerName = carBulk.SellerName; 
    car.SellerCountry = carBulk.SellerCountry.ToString(); 
    if (cdDTO != null && cdDTO.CarDefinitionId > 0) 
    { 
     car.CarModelDefinition = cdDTO.Transform(cdDTO); 
    } 

    mee.AddToCar(car); 
    mee.SaveChanges(); 

cdDTO.Transform(cdDTO)データベースにマッピングすることができるオブジェクトへdatatransferobjectを変換します。奇妙なことに、cdDTO.Transform(cdDTO);は、正しいcardefintionIdの正しいオブジェクトを返しますが、挿入すると、ちょうど新しいcardefinitionid(これはpkです)の下に挿入されます。

+0

私のビジネスレイヤーを通過するのではなく、データレイヤーのデータを処理しようとしました。エラーが発生しました。アソシエーションがアソシエーションセット 'FK_Car_CarModelDefinition'に追加または削除されています。カーディナリティー制約では、対応する 'CarModelDefinition'も追加または削除する必要があります。 –

答えて

1

答えが見つかりました。私と同じくらい頑丈なので、私は1の数の代わりに1-1の関係にしました。

関連する問題