我正在某些表之间进行一些联接,我想将结果存储在查询类型或另一个定义的实体中。
在那些联接中我有很多列和字段,所以这意味着select子句中有很多分配。有没有一种方法可以告诉实体框架将所有列映射到结果实体中的所有对应字段,而无需手动显式映射它们
public class EfTblIncidentLogWithDetailsTypeConfiguration : IQueryTypeConfiguration<EfTblIncidentLogWithDetails>
{
private readonly EfFactsDbContext _efFactsDbContext;
public EfTblIncidentLogWithDetailsTypeConfiguration(EfFactsDbContext efFactsDbContext)
{
_efFactsDbContext = efFactsDbContext;
}
public void Configure(QueryTypeBuilder<EfTblIncidentLogWithDetails> builder)
{
builder.ToQuery(() => _efFactsDbContext.IncidentLogs.Select(incident => new EfTblIncidentLogWithDetails()));
builder.ToQuery(() =>
_efFactsDbContext.IncidentLogs
.Join(_efFactsDbContext.Users, log => log.CreationName, user => user.UserName, (log, user) => new EfTblIncidentLogWithDetails())) /*here I need to map automatically all fields it*/;
}
}
因此,例如在上面的示例中,我有2个大表IncidentsLogs和Users,我想将它们联接并映射到IncidentLogsWithDetails,而在调用EfTblIncidentLogWithDetails的构造函数时无需手动设置所有字段