【发布时间】:2014-12-13 01:32:56
【问题描述】:
在使用 Service Stack OrmLite 时,如何准确插入标识值?
例如,在 SQL Server 中,当为表打开 Identity_Insert 时,标识值将完全按照指定插入,而不是自动生成。
【问题讨论】:
标签: sql-server sql-insert ormlite-servicestack
在使用 Service Stack OrmLite 时,如何准确插入标识值?
例如,在 SQL Server 中,当为表打开 Identity_Insert 时,标识值将完全按照指定插入,而不是自动生成。
【问题讨论】:
标签: sql-server sql-insert ormlite-servicestack
例如:
public void InsertAll(IEnumerable<TTable> set)
{
const string identity = "SET IDENTITY_INSERT {0} {1}";
var schema = typeof(TTable).FirstAttribute<SchemaAttribute>();
var tableName = typeof(TTable).FirstAttribute<AliasAttribute>();
var qualified = (schema == null ? "dbo" : schema.Name) + "." +
(tableName == null ? typeof(TTable).Name : tableName.Name);
using (var db = _dbConnectionFactory.OpenDbConnection())
{
try
{
db.ExecuteSql(string.Format(identity, qualified, "ON"));
db.InsertAll(set);
}
finally
{
db.ExecuteSql(string.Format(identity, qualified, "OFF"));
}
});
}
【讨论】: