используя Linq To Sql для сохранения в SDF (файл локальной базы данных) в .Net - PullRequest
1 голос
/ 10 марта 2010

Привет, я пытаюсь сохранить некоторые данные в мой файл .sdf, используя объект LinqToSql. У меня есть следующая таблица -

PersonId int not null pk
forename nvarchar(4000)
surname nvarchar(4000)
Birthdate DateTime
IsMale bit
Biography nvarchar(4000)

Я вставляю значение во все поля, кроме столбца PersonId (установлен в идентичность, приращение).

Я использую код C #

myLinqToSqlObject.Persons.InsertOnSubmit(thisPerson);

тогда

 thisDataContext.SubmitChanges();

и я получаю исключение «Исключение было сгенерировано целью вызова». и внутреннее исключение просто "Varchar"

Кто-нибудь знает, что я делаю не так?

Спасибо

РЕДАКТИРОВАТЬ - Отображение кода для заполнения этого лица

thisPerson.Forename = thisDlg.Forename;
thisPerson.Surname = thisDlg.Surname;
thisPerson.Biography = thisDlg.Biography;
thisPerson.IsMale = thisDlg.IsMale;
thisPerson.BirthDate = thisDlg.BirthDate;

Где все поля возвращают значение (без нулевых значений)

Ответы [ 2 ]

1 голос
/ 10 марта 2010

DataContext имеет свойство Log; если вы назначите ему StreamWriter для записи в файл или подключите Console.Out, он запишет SQL, сгенерированный контекстом, и вы сможете лучше отладить запрос, чем потенциально ...

Кроме того, чтобы выяснить, что происходит, перед отправкой изменений вызовите context.GetChangeSet () и используйте непосредственное окно и отладку VS, чтобы увидеть, что находится в этой коллекции (в нее входят вставки, обновления и выполняется).

Это поможет вам быстрее найти ответ ...

0 голосов
/ 13 марта 2014

Чтобы создать файл SDF для DBML с помощью Visual Studio 2010, чем, напишите в командной строке Visual Studio 2010 строку ниже, чем «Ввести и выполнить».

SqlMetal.exe "EnterFilePath\CloudKase.sdf" /dbml:"EnterFilePath\CloudKase.dbml"

Также этот файл SDF и DBML используется в Visual Studio2012 Легкий доступ и внедрение кода.

Happy Coding:)

...