Я создал базу данных и dbml в visual studio 2010 с помощью своих мастеров. Все работало нормально, пока я не проверил данные таблиц (также в visual studio server explorer), и ни одно из моих обновлений не было.LinqToSQL не обновляет базу данных
using (var context = new CenasDataContext())
{
context.Log = Console.Out;
context.Cenas.InsertOnSubmit(new Cena() { id = 1});
context.SubmitChanges();
}
Это код, который я использую для обновления моей базы данных. На данный момент моя база данных имеет одну таблицу с одним полем (PK) с именем ID.
** INSERT INTO [DBO] .Cenas ЗНАЧЕНИЯ (@ p0) - @ р0: Входной сигнал Int (размер = -1; Prec = 0; Шкала = 0) [1] - Контекст: SqlProvider (SQL2008) Модель: AttributedMetaModel Сложение: 4.0.30319.1 **
Это LOG от исполнения (печатал журнал контекста в консоль).
Проблема, с которой я сталкиваюсь, заключается в том, что эти обновления не сохраняются в базе данных. Я имею в виду, что когда я запрашиваю мою базу данных (visual studio server explorer -> new query), я вижу, что таблица пуста, каждый раз.
Я использую файл базы данных SQL Server (.mdf).
РЕД (1): Immediate Window результат
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}
Да, это указывает на нужное место;) – codegarten
Я думаю, вы были правы. Проблема заключалась в том, что мастер созданного файла LinqToSql (dbml) с DataContext читает файл Settings.settings, а не App.config. Поэтому я был уверен, что это доступ к правильной базе данных, но это не так. Я даже не знаю, что он делал << Примечание для себя: не доверяйте волшебникам. – codegarten