ОК, мне сложно провести автоматизацию коллекций с использованием свободного nhibernate. На этот раз я попытался применить соглашение о коллекции, в котором просто говорится, что использовать camelCaseField с подчеркиванием. Ну, я получил соглашение загружен, и я ударил точку останова в методе ниже FNH все еще производит странное отображение. Что я делаю неправильно?Соглашение об автоматическом сборке
public class Parent
{
public virtual int Id { get; set; }
private IList<Child> _testCollection;
public virtual IList<Child> TestCollection
{
get
{
return _testCollection;
}
}
}
public class Child
{
public virtual int Id { get; set; }
}
public class CollectionAccessConvention : ICollectionConvention
{
public void Apply(ICollectionInstance instance)
{
instance.Access.CamelCaseField(CamelCasePrefix.Underscore);
}
}
<class xmlns="urn:nhibernate-mapping-2.2" mutable="true" name="Test.Parent, Test, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" table="`Parent`">
<id name="Id" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<column name="Id" />
<generator class="identity" />
</id>
<bag access="nosetter.camelcase" name="TestCollection" mutable="true">
<key>
<column name="Parent_id" />
</key>
<one-to-many class="Test.Child, Test, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</bag>
EDIT: @Bary: странное дело доступа = "nosetter.camelcase". Я думаю, что это должен быть доступ = "field.camelcase-underscore". Какие-либо предложения?
Хорошая работа. Я предполагаю, что код для стратегии доступа к конвенции о коллекции был не так уж плох в конце концов! – Berryl
Да, это хорошо, но это не ответ на предыдущий вопрос просто потому, что отображение, сгенерированное для коллекции ISet, равно вместо . И я все еще не могу справиться с этим. –
mynkow
Нет, нет, нет. Посмотрите еще раз на конвенцию. Хорошо, вот подсказка; он работает на ICollection. Затем снова просмотрите свой код. Если вы все еще не можете понять это, я расскажу вам, как сгенерировать набор * правильно *. HTH – Berryl