Я ищу ярлык.У меня есть некоторые сущности NH с отношениями многих ко многим.Примерно так:
public class Customer : EntityBase<Customer>
{
public virtual IList<Category> Categories { get; set; }
}
public class Category : EntityBase<Category>
{
public virtual IList<Customer> Customers { get; set; }
}
Имейте в виду, что это очень простое описание, поэтому не поддавайтесь искушению предположить, что я не использую расположение «многие ко многим» или что мне следует использовать тип значения или что-то подобноечто.
На стороне БД это отношение осуществляется через отдельную таблицу с двумя столбцами - Customer_Id
и Category_Id
.
Я бы очень хотел иметь возможность добавитьот Category
до Customer
без необходимости извлечения полной сущности из базы данных.Может быть, что-то вроде этого:
customerEntity.Categories.Add(new Category { Id = 2 });
Причина этого в том, что приложение является приложением ASP.NET MVC, и я использую ViewModels для своих представлений.Эти Customer
ViewModel заканчиваются List<int>
для выбора категории, и когда я иду сопоставить эту ViewModel с соответствующей Customer
сущностью, я хотел бы просто иметь возможность высосать эти идентификаторы категории в Categories
список без необходимости обращаться к базе данных, чтобы сначала получить их.
Одна из причин, по которой я хочу это сделать, заключается в том, что я хотел бы свести к минимуму вызовы базы данных, но я также хотел бы, чтобы моикласс mapper сможет создавать сущность Customer
без необходимости вызывать мой уровень обслуживания, чтобы запрашивать другие объекты ... это выглядит как плохой дизайн.Я также хотел бы избежать добавления еще одного слоя для вызова средства сопоставления, а затем выполнять другие операции сопоставления, которые извлекают сущности из хранилища (к которому сам доступ осуществляется через слой службы домена).
Я извлек idbag
, но для одного я использую Fluent NHibernate, и он не поддерживает эту конструкцию, и для двух из того, что я могу почерпнуть из документов, которые дадут мне List<int>
для сущности, и я все еще хотел бычтобы иметь доступ к полному объекту в этих коллекциях.
Я слишком много спрашиваю из NHibernate?