我一直在研究如何使用LINQ更新现有记录,但我没有运气。这是我创建的方法 - intellisense不喜欢db.SubmitChanges()
。
public void updateRestaurant(int RestID, int HoursID, string Web, string Desc)
{
RestaurantsEntities db = new RestaurantsEntities();
RESTAURANT restDetails = (from RESTAURANT in db.RESTAURANTs
where RESTAURANT.REST_ID == RestID
select RESTAURANT).Single();
restDetails.HOURS_ID = HoursID;
restDetails.REST_WEBSITE = Web;
restDetails.REST_DESC = Desc;
db.SubmitChanges();
}
答案 0 :(得分:4)
尝试使用db.SaveChanges();
public void updateRestaurant(int RestID, int HoursID, string Web, string Desc)
{
RestaurantsEntities db = new RestaurantsEntities();
RESTAURANT restDetails = (from RESTAURANT in db.RESTAURANTs
where RESTAURANT.REST_ID == RestID
select RESTAURANT).Single();
restDetails.HOURS_ID = HoursID;
restDetails.REST_WEBSITE = Web;
restDetails.REST_DESC = Desc;
db.SaveChanges();
}
答案 1 :(得分:0)
您在链接图中创建对象的实例。
这是不正确的。您需要创建对象上下文的实例,它以linq图的文件名开头,以DataContext结束。例如,如果您的链接文件名为myDb,则您的上下文名称为myDbDataContext。
RestaurantsEntities db = new RestaurantsEntities();
RESTAURANT restDetails = db.RESTAURANTs.single(c=>c.REST_ID == RestID);
restDetails.HOURS_ID = HoursID;
restDetails.REST_WEBSITE = Web;
restDetails.REST_DESC = Desc;
db.SubmitChanges();
这假设您的上下文中的对象称为RESTAURANT。
您需要使用上下文,以便上下文可以管理您要插入,更新和删除的内容,同时保持关系。 您无法创建对象的实例,然后将它们应用于您的上下文。它们必须通过上下文创建。
回复评论和更新:
我只是不直接思考。我已经更新了我的代码,但它没有帮助。我很确定你正确地做了一切
Have a look at this question and this post
<强>更新强>
我认为你的查询会给你带来麻烦。它与您的上下文断开连接。试试我上面提供的linq代码。