如何通过外键有效地将拥有的实体包括在EF core 2.1中?

时间:2018-09-16 12:37:04

标签: database one-to-many ef-core-2.0

我有一个模型: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

我想念什么?

0 个答案:

没有答案