我有一个模型:UploadedFile
。
class UploadedFile : EntityBase {
Guid OwnerId {get;set;}
string Url {get;set;}
}
class EntityBase { Guid Id {get;set;} }
还有几个不相关实体可以拥有上传的文件(一对多)。
所有实体均来自EntityBase
。
由于不相关的实体“使用”同一列(OwnerId
),因此无法使用fluent-API设置连接。
我想要实现以下目标:
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
}
但是感觉并不太愿意再次包含 all 属性;以及无法在.Include(...)
中使用select
。
我想念什么?