摘要:功能NHibernate DuplicateMappingException與自動映射
我要救兩個類相同的名稱和不同的命名空間與功能NHibernate Automapper
語境
我在寫有將大量不同的對象導入數據庫進行測試。我最終會將映射器寫入適當的模型。
我一直在使用代碼gen和流利NHibernate採取這些DTOs並將它們直接轉儲到分貝。
異常不說(請嘗試使用自動導入= 「假」)
代碼
public class ClassConvention : IClassConvention
{
public void Apply(IClassInstance instance)
{
instance.Table(instance.EntityType.Namespace.Replace(".", "_"));
}
}
namespace Sample.Models.Test1
{
public class Test
{
public virtual int Id { get; set; }
public virtual string Something { get; set; }
}
}
namespace Sample.Models.Test2
{
public class Test
{
public virtual int Id { get; set; }
public virtual string SomethingElse { get; set; }
}
}
而這裏的實際應用代碼
var model = AutoMap.AssemblyOf<Service1>()
.Where(t => t.Namespace.StartsWith("Sample.Models"))
.Conventions.AddFromAssemblyOf<Service1>();
var cfg = Fluently.Configure()
.Database(
MySQLConfiguration.Standard.ConnectionString(
c => c.Is("database=test;server=localhost;user id=root;Password=;")))
.Mappings(m => m.AutoMappings.Add(model))
.BuildConfiguration();
new SchemaExport(cfg).Execute(false, true, false);
謝謝我非常感謝任何幫助
更新使用功能NHibernate RC1
更新我的代碼到Fluent NHibernate RC1 – 2009-08-17 21:32:51