Avneel93 Ответов: 1

Nhibernate не удалось создать экземпляр прокси-сервера


Я пытаюсь сопоставить класс ApplicationRequest с классом запроса. Один запрос может иметь несколько ApplicationRequests, но один ApplicationRequest принадлежит только одному запросу. Ниже приведены мои классы и соответствующие xml-сопоставления.

class Request
{
    public virtual string Id { get; set; }
    public virtual string FirstName { get; set; }
    public virtual string LastName { get; set; }
    public virtual string JobTitle { get; set; }
    public virtual IList<ApplicationRequest> Requests { get; set; }
}

class ApplicationRequest
{
    public virtual int Id { get; set; }
    public virtual string RequestId { get; set; }
    public virtual int AppId { get; set; }
    public virtual string AppComment { get; set; }
    public virtual Request Request { get; set; }
}

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="nHibernateExample" namespace="nHibernateExample">
  <class name="Request" table="Requests">
    <id name="Id" column="ID" generator="assigned" />
    <property name="FirstName" />
    <property name="LastName" />
    <property name="JobTitle" />
    <bag name="Requests" lazy="true">
      <key column="RequestID" foreign-key="ID" />
      <one-to-many class="ApplicationRequest" />
    </bag>
  </class>
</hibernate-mapping>

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="nHibernateExample" namespace="nHibernateExample">
  <class name="ApplicationRequest" table="ApplicationRequests">
    <id name="Id" column="ID" generator="native" />
    <property name="RequestId" column="RequestID" />
    <property name="AppId" column="AppID" />
    <property name="AppComment" />
    <many-to-one name="Request" class="Request">
      <column name="RequestID" not-null="false" index="ID" />
    </many-to-one>
  </class>
</hibernate-mapping>

Я могу получить запросы и связанные с ними запросы приложений следующим образом:
Request request = session.Get<Request>("R00877");
Ошибка возникает, когда я пытаюсь получить ApplicationRequests с этим:
List<ApplicationRequest> requests = session.Query<ApplicationRequest>().Where(x => x.RequestId == "R00877").ToList();
Внутреннее исключение-это
{"Access is denied: 'nHibernateExample.Request'.":""}
а послание такое
Creating a proxy instance failed

Любая помощь в этом отношении будет оценена по достоинству.

Что я уже пробовал:

Я пытался изменить отображение "многие-к-одному", но эта ошибка всегда возникает.

1 Ответов

Рейтинг:
2

Gerry Schmitz

Попробовать это:

Request request = session.Get<Request>("R00877");

List<ApplicationRequest> requests = request.Select( r => r.Requests ).ToList();