У меня есть юнит класса (например, компании), который имеет много связей с другими юнитами. Я не могу изменить структуру базы данных. БД выглядит примерно так:
Units:
UnitID
UnitName
...
UnitToUnitRelationships:
FromUnitID
ToUnitID
RelationshipType
Мне нужно ограничить RelationshipType при запросе.В настоящее время у меня есть класс Unit с ISet ChildUnits и ISet ParentUnits (поскольку при разных типах отношений у вас могут быть разные родители).У меня нет необходимости в RelationshipType в моем домене;Я был бы заинтересован только одним конкретным типом.Если бы я писал свой собственный SQL, я бы просто удостоверился, что все мои запросы содержали RelationshipType='FOO'
в предложении ON
или WHERE
.
Я использую Fluent для отображения;мое существующее дочернее отображение выглядит следующим образом:
HasManyToMany(x => x.ChildUnits).AsSet().Cascade.None().
Table("UnitToUnitRelationships").Not.LazyLoad().Fetch.Subselect().
ParentKeyColumn("ToUnitID").ChildKeyColumn("FromUnitID").BatchSize(1000);
Я думаю, что мне может понадобиться создать класс UnitToUnitRelationship
и связываться с этим, но если есть более простой способ, я, конечно, предпочел бы это, особенно есликак уже отмечалось, мне не нужна собственность в моем домене.