Fluent NHibernate を使用してオブジェクトを自動マッピングするのに問題があります。
Documentテーブルが既に SqlServer に存在するクラスが呼び出されました。
Class Packet extends Documentと Have a member PacketDefinition。
PacketDefinition( WindowsフォームListではなく、自分のクラス)タイプがあります。Form

次の構成を使用してオブジェクトを自動マップしようとしてPacketいます。
var mapping = CreateMappings();
_sessionFactory = Fluently.Configure()
.Database(
MsSqlConfiguration.MsSql2008.ConnectionString(
c => c.Server("machinename\\sql2012").Database("DatabaseName").TrustedConnection())
.ShowSql)
.Mappings(m => m.AutoMappings.Add(mapping))
.ExposeConfiguration(BuildSchema)
.BuildSessionFactory();
private static AutoPersistenceModel CreateMappings()
{
return AutoMap
.AssemblyOf<Packet>();
}
private static void BuildSchema(Configuration config)
{
new SchemaExport(config).Create(false, true);
}
Packet問題は、クラスを自動マップしようとすると、エラーが発生することです
System.Data.SqlClient.SqlException : There is already an object named 'Document' in the database.
テーブルがデータベースに既に存在することは理解してDocumentいますが、削除したくありません。を使用して基本クラスを無視してみました
AutoMap.AssemblyOf<Packet>().IgnoreBase<Document>();
Documentしかし、自動マッピングはテーブル内のすべてのプロパティも作成しますがPacket、これは良くありません。
別のデータベースを作成してから同じコードを実行しようとDocumentすると、そのデータベースにテーブルが存在しないため機能します。大量のデータがあるため、既存のテーブルを削除したくありません。