我试过
ObjectScope.GetSqlQuery("TRUNCATE TABLE %table_name%", null, null).Execute();
和
ObjectScope.GetOqlQuery("TRUNCATE TABLE %ClassName%Extent").Execute();
第一行什么也没做。第二次抛出异常:
line 1:10: unexpected token: ["TABLE",<42>,line=1,col=10]
Original Query: TRUNCATE TABLE DayExtent
答案 0 :(得分:1)
方法ExecuteDDLScript在DDL和DML脚本之间没有区别。它只要求没有开放的对象范围。
IObjectScope scope = ObjectScopeProvider1.GetNewObjectScope();
//do something here
scope.Dispose();
string tableToTruncate = "SOME_TABLE";
scope.Database.GetSchemaHandler().ExecuteDDLScript(string.Format("TRUNCATE TABLE {0}", tableToTruncate));
scope = ObjectScopeProvider1.GetNewObjectScope();
//do something again
希望有所帮助。