Asp.net 是否可以在亚音速2.0中插入/更新标识
不幸的是,我一直在使用这个基本上没有文档记录/过时的库(亚音速2.0)。我试图做一个简单的身份插入,但我似乎无法让它工作 以下是我尝试执行的psuedo代码版本:Asp.net 是否可以在亚音速2.0中插入/更新标识,asp.net,c#-4.0,subsonic-active-record,subsonic2.0,Asp.net,C# 4.0,Subsonic Active Record,Subsonic2.0,不幸的是,我一直在使用这个基本上没有文档记录/过时的库(亚音速2.0)。我试图做一个简单的身份插入,但我似乎无法让它工作 以下是我尝试执行的psuedo代码版本: SubSonicExampleObject o = new Select() .From(SubSonicExampleObject.Schema) .Where(SubSonicExampleObject.IdColumn)
SubSonicExampleObject o = new Select()
.From(SubSonicExampleObject.Schema)
.Where(SubSonicExampleObject.IdColumn)
.IsEqualTo(124124)
.ExecuteSingle<SubSonicExampleObject>();
if(o == null)
{
o = new SubSonicExampleObject();
o.Id = 124124;
o.Save();
}
不管我怎么做,亚音速似乎忽略了ID值,并根据下一个标识值进行设置
如果有人知道怎么做,我会非常高兴的 为什么在使用标识列时需要插入该特定ID?如果这是一个边缘案例,您不能在insert this(缺少但预期?)记录中编写SQL脚本,然后让它在后续插入中使用下一个标识值吗?嘿,BateTech,事实上这是针对导入应用程序的,在循环中以这种方式插入了数百个对象。最后我做了一个大型的内联查询,其中包括insert语句和切换IDENTITY\u insert(出于某种原因,将其作为三个独立的内联查询运行,类似于我的第二个示例,不起作用?)。如果我找不到一个更干净的解决方案,我可能会把它贴出来作为答案。
new InlineQuery()
.Execute("SET IDENTITY_INSERT " + SubSonicExampleObject.Schema + " ON");
[CODE ABOVE]
new InlineQuery()
.Execute("SET IDENTITY_INSERT " + SubSonicExampleObject.Schema + " OFF");