我在这里有一点点/奇怪的行为,我在网上查找,所以我没有找到答案。Linq to SQL没有将数据插入到数据库
我不得不承认,这是我第一次使用数据库,我知道如何使用它们与SQL,但从来没有实际使用它。
无论如何,我的应用程序插入数据时遇到了问题,我只是创建了一个非常简单的项目,用于测试并且没有解决方案。
我与SQL Server的实例数据库
标识 - INT(标识主键) 名称 - 的nchar(10)(NOT NULL)
的表称为 “人”,就这么简单馅饼。
我有这样的:
static void Main(string[] args)
{
var db = new ExampleDBDataContext {Log = Console.Out};
var jesus = new Person {Name = "Jesus"};
db.Persons.InsertOnSubmit(jesus);
db.SubmitChanges();
var query = from person in db.Persons select person;
foreach (var p in query)
{
Console.WriteLine(p.Name);
}
}
正如你所看到的,没有什么交流中心。
它在控制台显示耶稣。但是如果你看到表格数据,就没有数据,只是空的。我评论对象的创建和插入和foreach不打印的东西(正常,没有数据库中的数据)
奇怪的是我手动创建了一个数据库中的行,ID是2和1号(是真的LINQ与数据库玩,但它没有创建行?)
有日志:
INSERT INTO [DBO] .Person
VALUES(@ p0)
SELECT CONVERT(Int,SCOPE_IDENTITY())AS [value]
- @ p0:Input NChar(Size = 10; Prec = 0;标度= 0)[耶稣]
- 上下文:sqlProvider的(SQL2005)型号:AttributedMetaModel体形:3.5.30729.4926
SELECT [T0] [ID],[T 0] [姓名] FROM [。 DBO] [人] AS [T 0]
- 语境:sqlProvider的(SQL2005)型号:AttributedMetaModel体形:3.5.30729.4926
我真的很困惑,所有的博客/书籍都使用这种片段将元素插入数据库。
谢谢你的帮助。
WAG - 您有两个数据库实例,一个是L2S正在与之交互,另一个是您手动创建数据库行。 – Will 2010-03-18 16:22:28
Heve您打开了一个事务吗? – Gregoire 2010-03-18 16:23:18
当您查看设计器中的Person类时,标识列是否显示为自动生成的值? – tvanfosson 2010-03-18 16:23:37