将LINQ结果分配给子属性-InvalidCastException:无法强制转换类型为的对象



我有两个表,Project和ProjectShasp。

我有两个型号,ProjectModelProjectSshasp。我在ProjectModel中的一个属性是:

public virtual ProjectSshasp ProjectSshaspModel { get; set; }

我得到这个错误:

InvalidCastException:无法强制转换类型为;微软EntityFrameworkCore。查询内部的EntityQueryable `1[xxxAPI.Models.ProjectShasp]-;至类型;xxxAPI。模型。ProjectShasp;。

在线:

if (projectSshaspModel != null)
projectModel.ProjectSshaspModel = (ProjectSshasp)projectSshaspModel;

这是完整的代码:

public virtual ProjectSshasp ProjectSshaspModel { get; set; }

[HttpGet("{id}")]
public async Task<ActionResult<ProjectModel>> GetProjectModel(Guid id)
{
//var projectModel = await _context.Project.FindAsync(id);
var projectModel = await _context.Project
.AsNoTracking()
.FirstOrDefaultAsync(a => a.ProjectID == id);

var projectSshaspModel = _context.ProjectSshasp
.Where(a => a.ProjectID  == id);
if (projectSshaspModel != null)
projectModel.ProjectSshaspModel = (ProjectSshasp)projectSshaspModel;
if (projectModel == null)
{
return NotFound();
}
return Ok(new { projectModel });

}

替换:

var projectSshaspModel = _context.ProjectSshasp
.Where(a => a.ProjectID  == id);

带有:

var projectSshaspModel = _context.ProjectSshasp
.FirstOrDefault(a => a.ProjectID  == id);

最新更新