C# 更新外键列
我不知道如何在LINQtoSQL中实现这一点 下面是一个简单的外键示例C# 更新外键列,c#,linq-to-sql,C#,Linq To Sql,我不知道如何在LINQtoSQL中实现这一点 下面是一个简单的外键示例 CARS TABLE Columns - CARID (PK), NAME, SIZE, MODELID(FK) MODELS TABLE Columns MODELID(PK), MODELNAME 要在SQL中更改汽车的型号,我将 UPDATE CARS SET MODELID = 'MODEL88' WHERE CARID = 'CAR01' 在LINQtoSQL中,我试图做一些类似的事情,但更新不起作用 Ca
CARS TABLE
Columns - CARID (PK), NAME, SIZE, MODELID(FK)
MODELS TABLE
Columns MODELID(PK), MODELNAME
要在SQL中更改汽车的型号,我将
UPDATE CARS
SET MODELID = 'MODEL88'
WHERE CARID = 'CAR01'
在LINQtoSQL中,我试图做一些类似的事情,但更新不起作用
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();
也许它会起作用:
Car car = db.Cars.Where(x => x.CarId == "CAR01").FirstOrDefault();
Model model = db.Models.Single(c => c.ModelId == "MODEL88");
car.ModelId = model.Id;
db.SubmitChanges();
也许它会起作用:
Car car = db.Cars.Where(x => x.CarId == "CAR01").FirstOrDefault();
Model model = db.Models.Single(c => c.ModelId == "MODEL88");
car.ModelId = model.Id;
db.SubmitChanges();
嗯,很奇怪。数据库中是否设置了关系?这是否反映在您的.DBML中 出于好奇,如果您将
汽车
添加到车型
上的汽车
集合,是否有效,如下所示:
Car car = db.Cars.Where(x => x.CarId == "CAR01").FirstOrDefault();
Model model = db.Models.Single(c => c.ModelId == "MODEL88");
model.Cars.Add(car)
db.SubmitChanges();
嗯,很奇怪。数据库中是否设置了关系?这是否反映在您的.DBML中 出于好奇,如果您将
汽车
添加到车型
上的汽车
集合,是否有效,如下所示:
Car car = db.Cars.Where(x => x.CarId == "CAR01").FirstOrDefault();
Model model = db.Models.Single(c => c.ModelId == "MODEL88");
model.Cars.Add(car)
db.SubmitChanges();
父类:模型子类:dbml中的汽车,我将尝试。立即添加您的答案很有帮助,因为它表明我没有做错什么。从头开始重新创建一切都有效,所以一定有东西被损坏了。父类:模型子类:dbml中的Car,我将尝试。立即添加您的答案很有帮助,因为它表明我没有做错什么。从头开始重新创建一切工作正常,因此某些内容一定已损坏。由于对象的当前状态,此返回操作无效。由于对象的当前状态,此返回操作无效。