テスト用のインメモリSQLiteDBを作成するための次のコードがあります。
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);
これはほとんどの場合正常に機能しているように見えますが、残念ながら、すべての列がnull許容ではないものとして作成されています。
たとえば、2つのクラスがあります。
InternalFund
およびExternalFund
。両方とも同じテーブルから継承しFund
、両方とも同じテーブルに永続化します。
ExternalFund
列がありますがManager_ID
、InternalFund
ありません。InternalFund
残念ながら、これはSQL例外をスローするため、永続化できないことを意味します。
テストに参照整合性は必要ないので、すべての列をnull許容にすることができれば幸いです。
誰かがこれを行う方法を知っていますか?
ありがとう
Stu