1

我试过

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
4

1 回答 1

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

希望有帮助。

于 2011-08-30T09:29:03.437 回答