不要以为任何人都知道如何从nhibernate执行sql脚本.我在staticData.sql文件中包含的数据库中需要一些静态数据.当我运行集成测试时,我使用schema export命令重新创建数据库,我需要运行这些数据.我意识到我可以使用.net来获取它,但我真的只想在我的网络中使用一种数据访问技术项目...
谢谢
Lar*_*ard 13
尝试使用NHibernate.ISession.CreateSQLQuery(string queryString)
private NHibernate.ISession session; // Initialized somewhere
public void ExecuteSQLFile(string sqlFilePath)
{
string sqlScript;
using (FileStream strm = File.OpenRead(sqlFilePath))
{
var reader = new StreamReader(strm);
sqlScript = reader.ReadToEnd();
}
var regex = new Regex("^GO", RegexOptions.IgnoreCase | RegexOptions.Multiline);
string[] lines = regex.Split(sqlScript);
foreach (string line in lines)
{
IQuery query = session.CreateSQLQuery(line);
query.ExecuteUpdate();
}
}
Run Code Online (Sandbox Code Playgroud)
以下是文档:第16章.本机SQL
在集成测试中使用普通的 ADO.NET 将数据插入数据库没有任何问题。对于批量插入,它甚至比 NHibernate 更好。将数据库置于已知状态进行测试的方式并不重要,重要的是测试在应用程序中访问数据的方式。
| 归档时间: |
|
| 查看次数: |
4882 次 |
| 最近记录: |