我有以下代码来创建用于测试的内存 SQLite DB:
Configuration config = null;
FluentConfiguration fluentConfiguration = Fluently.Configure().Database(SQLiteConfiguration.Standard.InMemory().ShowSql()
).Mappings(m =>
{
m.FluentMappings.AddFromAssemblyOf<ReturnSourceMap>();
m.HbmMappings.AddFromAssemblyOf<ReturnSourceMap>();
m.FluentMappings.AddFromAssemblyOf<EchoTransaction>();
}).ExposeConfiguration(c => config = c);
ISessionFactory sessionFactory = fluentConfiguration.BuildSessionFactory();
_session = sessionFactory.OpenSession();
new SchemaExport(config).Execute(true, true, false, _session.Connection, Console.Out);
这似乎对大多数事情都有效,但不幸的是,它将所有列都创建为不可为空。
例如我有两个类:
InternalFund
和ExternalFund
。两者都继承自同一张表,Fund
并且都保留在同一张表中。
ExternalFund
有一个专栏Manager_ID
,InternalFund
没有。不幸的是,这意味着我不能持久化它,InternalFund
因为它会抛出一个 SQL 异常。
我的测试不需要参照完整性,所以如果我可以让所有列都为空,我会很高兴。
有谁知道如何做到这一点?
谢谢
斯图