В моем веб-сервисе WCF я без проблем читал из базы данных.Сегодня я попытался обновить, но быстро обнаружил, что изменения не были сохранены в базе данных.Я не получаю никаких ошибок или исключений.Последние несколько часов я потратил на изучение проблемы без удачи.Я нашел много похожих вопросов, но в большинстве случаев причина была в том, что таблица, в которую записывалась таблица, не имела первичного ключа, однако это не относится к этой таблице.
Вот некоторый код:
var db = new dbDataContext(Convert.ToString(ConfigurationManager.AppSettings["sConn"]));
...
var bookingRow = (from mBooking in db.d_bookings
where mBooking.booking_id == bookingID
select new BookingResult
{
guideID = mBooking.user_id_guide == null ? 0 : (int)mBooking.user_id_guide,
adultShow = mBooking.booking_nAdults_show == null ? 0 : (int)mBooking.booking_nAdults_show,
childShow = mBooking.booking_nChild_show == null ? 0 : (int)mBooking.booking_nChild_show,
}
).Single();
bookingRow.guideID = someNewValue;
bookingRow.adultShow = someNewValue;
bookingRow.childShow = someNewValue;
try
{
db.SubmitChanges();
}
catch (Exception ex)
{
return "{\"result\" : \"false\" }";
}
А класс BookingResult - это просто:
public class BookingResult
{
public int guideID { get; set; }
public int adultShow { get; set; }
public int childShow { get; set; }
}
Это мой первый проект, работающий с WCF и LINQ, и он казался невероятно простым по большей части, но это меня отбросилопетля.Любая помощь очень ценится!
решено: Проблема заключалась в том, что я читал в пользовательский класс, который не был прикреплен к моему DataContext.Удаление класса и просто выделение всей строки работает нормально.
var bookingRow = (from mBooking in db.d_bookings
where mBooking.booking_id == bookingID
select mBooking
).Single();