Как мне сопоставить вложенные дженерики в NHibernate - PullRequest
1 голос
/ 03 февраля 2010

В NHibernate вы можете отображать дженерики следующим образом

<class name="Units.Parameter`1[System.Int32], Units" table="parameter_int"  >
</class>

Но как я могу сопоставить такой класс?

Set<T> where T is a Parameter<int> like this Set<Parameter<int>>

Мое отображение hbm.xml выглядит так:

<class name="Set`1[[Units.Parameter`1[System.Int32], Units]],Units"  table="settable"/> 

Я немного упростила свои отображения, чтобы четко изложить свою точку зрения. В основном я хочу, чтобы NHibernate отображал универсальный класс, который имеет параметр универсального типа.

Я хочу понять, что в результате поиска в Google NHibernate не может проанализировать имя в TypeNameParser.Parse () правильного типа, что приводит к следующей ошибке при добавлении сопоставления в конфигурацию

System.ArgumentException: Exception of type 'System.ArgumentException' was thrown. Parameter name: typeName@31

Кто-нибудь нашел способ обойти это ограничение?

1 Ответ

1 голос
/ 03 февраля 2010

Я думаю, вам придется отобразить его как пользовательский тип. См. эту статью и Google для IUserType.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...