Пользовательский модуль Orchard - Модель выбирается NHibernate - Требуются виртуальные свойства
Я работаю над созданием пользовательского модуля в Orchard CMS, и у меня есть следующее действие контроллера:
public ActionResult Inventory()
{
var models = _repository.Get<MyModel>();
return View(new MyViewModel() { MyModels = models.ToList() });
}
Теперь, когда Orchard строит это, возникает исключение, потому что NHibernate подобрал MyModel, потому что он рассматривается как PartRecord, а я этого не хочу.
Исключением является метод get_Id, который должен быть «публичный / защищенный виртуальный» или «защищенный внутренний виртуальный».
Я могу добавить виртуальные свойства, но я хочу, чтобы NHibernate не участвовал в просмотре этого объекта, это не нужно.
У меня вопрос, как я могу добавить модель, получить доступ к этой модели в представлении и запретить Орчарду рассматривать ее как PartRecord? Я на самом деле использую модель в отдельном хранилище, отдельно от БД Orchard.
РЕДАКТИРОВАТЬ: Дополнительная информация
_repository - это IDbRepository, указывающий на мой собственный экземпляр БД. MyModel - это POCO для моих данных. Я стараюсь не размещать виртуальные свойства в MyModel, у меня они есть здесь, чтобы проиллюстрировать, где я пытаюсь их избежать.
public interface IDbRepository : IDependency
{
T Find<T>(long id) where T : class, IActiveRecord;
bool Update<T>(T record) where T : class, IActiveRecord;
bool Remove<T>(T record) where T : class, IActiveRecord;
}
public class MyModel : IActiveRecord
{
[Key]
public virtual long Id { get; set; }
public virtual int SupplierProductId { get; set; }
public virtual int SupplierId { get; set; }
public virtual int ProductId { get; set; }
}
В дополнение к этому, у моего модуля есть созданная мной часть настроек, которая сохраняется в Orchard DB и редактируется в настройках сайта. Я использую обработчик для управления этим. Тем не менее, я попытался удалить обработчик и несколько других вещей, чтобы Орчард не мог перенести мой объект в NHibernate.