【发布时间】:2009-06-23 16:42:04
【问题描述】:
我有一个用于解决 DDD 问题的参考应用程序,我目前的重点是持久性。这篇文章的另一个标题可能是 DDD / TDD 持久性工具和方法,但这是一个(非常)广泛的话题,我确实有一个关于 SQL Server 的具体问题。
我将在本段中概述我当前的工具集作为背景,因此请随意跳过它来回答问题。我正在使用 NHibernate、Fluent NHibernate、Rhino、Visual Studio 2008 和 SQL Server。我目前的想法是在任何数据映射更改后使用 NHibernate 生成 db,查看 VS 2008 中生成的表,看看我的持久性映射测试是否全部通过。我最初想使用 SQLite 作为测试数据库,但我怀疑它在某些方面是否能准确衡量正确映射(如引用完整性)。然后我尝试使用 SQL Ce,但发现用 VS 观察生成的表令人沮丧。这就是为什么我现在打算首先使用 SQL Server。
以下命令对象生成 db:
public class GenerateNewDb_SqlServer : ICommand
{
public GenerateNewDb_SqlServer(Configuration cfg)
: base(string.Format("Update a Sql Server Database"))
{
_cfg = cfg;
}
public override void Execute()
{
try
{
var schema = new SchemaExport(_cfg);
schema.Create(true, true);
}
catch (Exception ex)
{
Console.WriteLine("Schema Export Error Message: " + ex);
}
}
}
问题是旧的数据库对象仍然存在。在使用 NHibernate 模式工具创建它之前,我每次都需要以某种方式删除整个 sql server db。谁能告诉我如何在代码中做到这一点?
我可以使用 NHibernate.Cfg.Configuration 对象来删除数据库吗?代码会是什么样子?
干杯, 浆果
【问题讨论】:
-
与您的问题完全无关,但我有完全相同的思考过程“SQLite 是完美的!......哦,等等......SQL CE 是完美的!......哦等等。让我们只是使用 SQL Express。”
标签: .net nhibernate tdd domain-driven-design persistence