使用LINQ to Entities更新数据库
我一直在研究如何使用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(); }
尝试使用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(); }
您在链接图中创建对象的实例。
这是不正确的。 您需要创建对象上下文的实例,它以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。
您需要使用上下文,以便上下文可以管理您要插入,更新和删除的内容,同时保持关系。 您无法创建对象的实例,然后将它们应用于您的上下文。 必须通过上下文创建它们。
回复评论和更新:
我只是不直接思考。 我已经更新了我的代码,但它没有帮助。 我很确定你正确地做了一切
看看这个问题 和这篇文章
UPDATE
我认为你的查询会给你带来麻烦。 它与您的上下文断开连接。 试试我上面提供的linq代码。