У меня есть модель: UploadedFile
.
class UploadedFile : EntityBase {
Guid OwnerId {get;set;}
string Url {get;set;}
}
class EntityBase { Guid Id {get;set;} }
Есть также несколько не связанных сущностей, которые могут владеть загруженными файлами (один-ко-многим).Все сущности происходят от EntityBase
.Я не могу установить соединения, используя fluent-API, поскольку несвязанные объекты «используют» один и тот же столбец (OwnerId
).Я хотел бы добиться следующего:
context.SomeOwner1.Include(o => o.UploadedFiles)
Нет возможности (или, может быть, есть?) Для настройки интерфейс отношений (я получаю The entity type 'Models.IUploadedFilesOwner' provided for the argument 'clrType' must be a reference type.
).
Я могу добиться запрошенного поведения, используя:
context.SomeOwner1.Select( o=> new SomeOwner1
{ o.UploadedFiles =
context.UploadedFiles.Where(u => u.OwnerId == o.Id),
Id = o.Id,
more properties... // <- NOTE THIS
}
Но не так уж СУХО, чтобы включить все свойства еще раз;и невозможность использовать .Include(...)
внутри select
.
Чего мне не хватает?