Есть ли способ разделить доменные объекты и файлы сопоставления на два отдельных проекта? Я хотел бы создать один проект с именем MyCompany.MyProduct.Core, который содержит мою модель домена, и другой проект, который называется MyCompany.MYProduct.Data.Oracle, который содержит мои сопоставления данных Oracle. Однако, когда я пытаюсь выполнить модульное тестирование, я получаю следующее сообщение об ошибке:
Именованный запрос 'GetClients' не найден.
Вот мой файл сопоставления:
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="MyCompany.MyProduct.Core"
namespace="MyCompany.MyProduct.Core"
>
<class name="MyCompany.MyProduct.Core.Client" table="MY_CLIENT" lazy="false">
<id name="ClientId" column="ClientId"></id>
<property name="ClientName" column="ClientName" />
<loader query-ref="GetClients"/>
</class>
<sql-query name="GetClients" callable="true">
<return class="Client" />
call procedure MyPackage.GetClients(:int_SummitGroupId)
</sql-query>
</hibernate-mapping>
Вот мой тестовый модуль:
try
{
var cfg = new Configuration();
cfg.Configure();
cfg.AddAssembly( typeof( Client ).Assembly );
ISessionFactory sessionFactory = cfg.BuildSessionFactory();
IStatelessSession session = sessionFactory.OpenStatelessSession();
IQuery query = session.GetNamedQuery( "GetClients" );
query.SetParameter( "int_SummitGroupId", 3173 );
IList<Client> clients = query.List<Client>();
Assert.AreNotEqual( 0, clients.Count );
}
catch( Exception ex )
{
throw ex;
}
Я думаю, что я могу неправильно ссылаться на сборку, потому что, если я помещу объект модели домена в класс MyComapny.MyProduct.Data.Oracle, он будет работать. Только когда я разделяюсь на два проекта, я сталкиваюсь с этой проблемой.