LINQ to SQL в C #> Обновления и вставки не работают.Стол имеет ПК - PullRequest
1 голос
/ 23 февраля 2012

В моем веб-сервисе 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();

1 Ответ

3 голосов
/ 23 февраля 2012

Вы создаете совершенно новый BookingResult, который не будет присоединен к DataContext и, следовательно, не будет рассматриваться как изменение при вызове SubmitChanges.Есть ли в базе данных таблица с именем BookingResults?Что, вы надеетесь, случится с вашим новым BookingResult?Будет ли это создать новую строку?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...