2010-03-10 39 views
1

嗨,我試圖使用LinqToSql對象將一些數據保存到我的.sdf文件中。 我有一個表如下: -使用Linq To Sql保存到.Net中的SDF(本地數據庫文件)

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

我從PERSONID柱(設置爲標識,遞增)插入值到各個領域開。

我使用的

myLinqToSqlObject.Persons.InsertOnSubmit(thisPerson); 

然後

thisDataContext.SubmitChanges(); 

的C#代碼和我得到的例外「異常已通過調用的目標引發異常。」 和一個內部例外只是「Varchar」

有誰知道我在做什麼錯?

感謝

編輯 - 顯示代碼填充thisPerson

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

所有領域的返回值(無空值)

+0

你可以顯示你用來填充thisPerson的代碼嗎? – BFree

回答

1

DataContext的有Log屬性;如果您爲其分配StreamWriter來寫入文件或附加Console.Out,它將編寫由上下文生成的SQL,並且您可以更好地調試查詢,然後可能...

此外,要弄清楚在提交更改之前,請調用context.GetChangeSet(),並使用即時窗口和VS調試來查看此集合(其中包含正在執行的插入,更新和刪除)中駐留的內容。

這將有助於你得到的答案更快...

+0

謝謝@布萊恩,我怎麼把它寫出來給控制檯? – Ben

0

要創建SDF文件DBML使用Visual Studio 2010中比,在比輸入並執行它的Visual Studio 2010的命令提示符下面寫下一行。

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

此外在Visual Studio 2012中使用的SDF和DBML文件易於訪問和實現代碼。

快樂編碼:)

相關問題