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