linq-to-sqlでこれをどのように行うかわかりません。
以下の単純な外部キーの例。
CARS TABLE
Columns - CARID (PK), NAME, SIZE, MODELID(FK)
MODELS TABLE
Columns MODELID(PK), MODELNAME
SQLで車のモデルを変更するには
UPDATE CARS
SET MODELID = 'MODEL88'
WHERE CARID = 'CAR01'
linq-to-sqlで同様のことを実行しようとしましたが、更新が機能しません。
Car car = db.Cars.Where(x => x.CarId == "CAR01").FirstOrDefault();
Model model = db.Models.Single(c => c.ModelId == "MODEL88");
car.Model = model;
db.SubmitChanges();
例外はありません、それはただ更新をしません。外部キーではない他のフィールドの更新は、サイズなどで機能します。
Car car = db.Cars.Where(x => x.CarId == "CAR01").FirstOrDefault();
car.Size = "22";
db.SubmitChanges();