LinqToSQL не обновляет базу данных - PullRequest
1 голос
/ 18 мая 2010

Я создал базу данных и dbml в visual studio 2010, используя ее мастера. Все работало нормально, пока я не проверил данные таблиц (также в обозревателе серверов Visual Studio), и ни одно из моих обновлений там не было.

using (var context = new CenasDataContext())
{
    context.Log = Console.Out;
    context.Cenas.InsertOnSubmit(new Cena() { id = 1});
    context.SubmitChanges();
}

Это код, который я использую для обновления моей базы данных. На данный момент в моей базе данных есть одна таблица с одним полем (PK) с именем ID.

** INSERT INTO [dbo] .Cenas VALUES (@ p0) - @ p0: входной Int (размер = -1; Prec = 0; масштаб = 0) [1] - Контекст: SqlProvider (Sql2008) Модель: AttributedMetaModel Сборка: 4.0.30319.1 **

Это LOG из исполнения (печатается контекстный журнал в консоли).

У меня проблема в том, что эти обновления не сохраняются в базе данных. Я имею в виду, что когда я запрашиваю свою базу данных (проводник сервера Visual Studio -> новый запрос), я вижу, что таблица пуста каждый раз.

Я использую файл базы данных SQL Server (.mdf).

РЕДАКТИРОВАТЬ (1): Результат немедленного окна

context.GetChangeSet()
{Inserts: 1, Deletes: 0, Updates: 0}
    Deletes: Count = 0
    Inserts: Count = 1
    Updates: Count = 0
context.GetChangeSet().Inserts
Count = 1
    [0]: {DBTest.Cena}

Ответы [ 2 ]

0 голосов
/ 18 мая 2010

Если вы создадите DataContext без аргументов, он получит строку подключения из вашего файла App.Config или Web.Config. Откройте тот, который применяется, и убедитесь, что он указывает на ту же базу данных.

0 голосов
/ 18 мая 2010

Поместите точку останова в context.SubmitChanges (); и в вашем ближайшем окне в VS сделайте:

context.GetChangeSet();

Существует свойство insert, которое должно содержать одну запись. Это поможет определить, стоит ли вставка в очередь.

НТН.

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