0

即使我使用訪問策略,是否可以爲實體的所有集合設置命名約定,以便所有集合名稱都是{EnityName}s而不是{entityName}s(因爲Access.CamelCaseField (Prefix.Underscore)的第一個字母是較低的)?流利Nhibernate - 集合名稱命名約定

或者有沒有一種方法可以告訴NHibernate它應該在SetFetchMode方法中使用不區分大小寫的關聯路徑?

這種方法是不區分大小寫:

ICriteria SetFetchMode(string associationPath, FetchMode mode) 

我嘗試建立設置associationPath

編輯的類型安全方式:

的associationPath是的name屬性採集。

<set access="field.camelcase-underscore" cascade="save-update" inverse="true" lazy="true" name="employees" table="TeamEmployee" mutable="true"> 

我想爲name屬性定義一個命名約定。

編輯:

,我發現這樣的事情:

public class LowercaseCollectionNameConvention : IClassConvention 
{ 
    public void Apply(IClassInstance instance) 
    { 
     instance.Collections. ... 
    } 
} 

是否有人一個知道如何使用它?

回答

0

我不確定我完全理解你的問題的上下文。如果您在映射和模式生成過程中爲關係命名策略之後,則需要執行某種「約定」。

我最近的博客我的約定http://blog.zoolutions.se/post/2010/07/03/Inflector-e28093-renaming-utilities.aspxhttp://blog.zoolutions.se/post/2010/07/05/All-my-current-Fluent-NHibernate-Conventions.aspx

如果你可以添加一些更好的描述我會很樂意延長我的答案。

編輯下面應該讓你非常接近,如果你從我的博客複製Inflektor類或任何其他位置可以發現:

public class HasManyConvention : IHasManyConvention 
{ 
    public void Apply(IOneToManyCollectionInstance instance) 
    { 
     instance.Cascade.SaveUpdate(); 
     instance.Inverse(); 
     string pluralized = Inflector.Pluralize(instance.ChildType.Name); 
     instance.Name(pluralized.ToLower()); 
    } 
} 
+0

是您定義的名稱的命名約定代碼hbmxml文件的集合? 我想爲名稱屬性。 – Rookian 2010-08-23 18:13:21

+0

我編輯了我的問題... =) – Rookian 2010-08-26 13:22:56