我刚刚使用了FromSqlRaw。在 Microsoft 教程中在此处输入链接描述,使用 FromSqlRaw 必须选择所有列(请注意,我也没有看到一些好的示例)。但我想要的是在连接多个表时选择一些特定的列。
首先,我加入了如下所示的两个表(RequestMaterial 将请求的键作为外键):
var requestVm = CurrentDbContext.PmrRequest
.FromSqlRaw("Select [r].[RequestName] from [Request] as [r] " +
"LEFT JOIN [RequestMaterial] as [m] On [r].RequestId = [m].RequestId " +
"where [r].[InitiatorUserId] = 'xxxx'")
.ToList();
错误消息是“底层阅读器没有预期的那么多字段”。
当我尝试选择一列而不加入表时,例如:
var requestVm = CurrentDbContext.PmrRequest
.FromSqlRaw("Select [r].[RequestName] from [Request] as [r] " +
"where [r].[InitiatorUserId] = 'xxxx'")
.ToList();
报告相同的错误。到目前为止,只有当我选择所有列时才能解决此问题。但问题是,当我使用连接表执行此操作时,选择了重复的列(RequestId)并报告了错误(“已添加具有相同键的项目。键:RequestId'”)。
有没有人有类似的经历?或上述情况的任何解决方案?