使用Linq To Sql保存到.Net中的SDF(本地数据库文件)

时间:2010-03-10 20:01:09

标签: c# .net linq sdf

HI,我正在尝试使用LinqToSql对象将一些数据保存到我的.sdf文件中。 我有一张表如下 -

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

我在除PersonId列之外的所有字段中插入一个值(设置为identity,increment)。

我正在使用

的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 个答案:

答案 0 :(得分:1)

DataContext有一个Log属性;如果您为其分配StreamWriter以写入文件或附加Console.Out,它将编写上下文生成的SQL,您可以更好地调试查询然后...

另外,要确定发生了什么,在提交更改之前,请调用context.GetChangeSet(),并使用立即窗口和VS调试来查看此集合中的内容(它具有插入,更新和删除)执行)。

这将有助于您更快地得到答案......

答案 1 :(得分:0)

使用Visual Studio 2010创建SDF文件到DBML,在Visual Studio 2010命令提示符下面写下面的行,而不是输入并执行它。

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

此Visual Studio 2012中使用的SDF和DBML文件也易于访问和实现代码。

快乐编码:)