概括:
我想用 Fluent NHibernate Automapper 保存两个同名和不同命名空间的类
语境
我正在写必须将许多不同的对象导入数据库进行测试。我最终会将映射器写入适当的模型。
我一直在使用 code gen 和 Fluent NHibernate 来获取这些 DTO 并将它们直接转储到 db。
异常确实说(尝试使用 auto-import="false")
代码
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);
谢谢我真的很感激任何帮助
使用 Fluent Nhibernate RC1 进行更新