gpt4 book ai didi

nhibernate - 使用NHibernate执行DDL语句

转载 作者:行者123 更新时间:2023-12-02 18:49:42 26 4
gpt4 key购买 nike

如何通过 NHibernate 执行 DDL 语句?

需要明确的是,我不想从映射文件自动生成架构。我的 DDL 存储在纯文本文件中,格式如下:

CREATE TABLE Foo (Bar VARCHAR(10))
GO
CREATE TABLE Hello (World INTEGER)
GO

我想按顺序循环这些并执行它们中的每一个。我可以打开一个 SqlConnection 并通过 SqlCommand 执行,但如果有一个好的方法来执行此操作,我想通过 NHibernate。这主要是因为我希望尽可能保持与数据库无关:我现在有一个 SQL 数据库,但以后可能需要实现 Oracle 或 DB2...

我正在使用 .Net v3.51 和 NHibernate v2.1。我查看了 NHibernate SchemaExport 类,但找不到将其用于此目的的方法。

最佳答案

我之前曾使用 session.Connection.CreateCommandsession.Transaction.EnlistCommand 成功运行原始 SQL。

这是我做过的类似事情的片段:

using (var command = _session.Connection.CreateCommand())
{
_session.Transaction.Enlist(command);
command.CommandText = "select foo from bar where id = @id";
var versionIdParameter = command.CreateParameter();
versionIdParameter.ParameterName = "id";
versionIdParameter.Value = id;
command.Parameters.Add(versionIdParameter);
using(var reader = command.ExecuteReader(CommandBehavior.SequentialAccess))
{
while (reader.Read())
// ...
}
}

关于nhibernate - 使用NHibernate执行DDL语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2023120/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com