2
我遇到了Fluent NHibernate AutoPersistenceModelGenerator的問題。它不想拿起自定義地圖。自定義流利的NHibernate地圖不能與AutoMapping一起使用
使用Sharp Architecture 2.0,Fluent NHibernate 1.2和NHibernate 3.1。
我目前的相關配置如下:
public AutoPersistenceModel Generate()
{
// This mappings group works with the exception of custom maps!!
var mappings = AutoMap.AssemblyOf<SecurableEntity>(new AutomappingConfiguration());
mappings.Conventions.Setup(GetConventions());
mappings.IgnoreBase<Entity>();
mappings.IgnoreBase<SecurableEntity>();
mappings.IgnoreBase(typeof(EntityWithTypedId<>));
mappings.UseOverridesFromAssemblyOf<AutoPersistenceModelGenerator>();
//mappings.UseOverridesFromAssemblyOf<UserMap>(); // Should call Override method of UserMap, but doesn't appear to...
mappings.Override<User>(new UserMap().Override()); // This hack fixes the issue with calling the Override method of UserMap.
mappings.UseOverridesFromAssemblyOf<UserMap>();
return mappings;
}
class UserMap : IAutoMappingOverride<User>
{
public void Override(AutoMapping<User> mapping)
{
//mapping => mapping.Table("Users");
mapping.Table("Users");
}
public Action<AutoMapping<User>> Override()
{
return map =>
{
map.Table("Users");
};
}
}
我試着進行各種變通來配置和澆過的功能NHibernate互聯網的文章,都無濟於事。我有一個使用Sharp Arch 1.x的工作版本,以及早期版本的NHibernate和Fluent。我假設我錯過了一些語法上的改變。任何和所有的幫助將不勝感激。
謝謝! 約翰
哇,我爲那個道歉。很難相信我在這方面工作了很長時間,卻沒有注意到缺少公開訪問修飾符... – user1003221
如果您發現答案有幫助,請立即投票。如果它解決了您的問題,請將其標記爲答案。謝謝! – NOtherDev
非常有幫助的答案。 'Conventions.AddFromAssemblyOf'處理內部類型的所有權利,所以我永遠不會認爲'UseOverridesFromAssemblyOf'無法做到這一點。這是相當不一致的。 –