我有两个表,Project和ProjectSshasp。
我有两个模型,ProjectModel
和ProjectSshasp
。我在ProjectModel中的属性之一是:
public virtual ProjectSshasp ProjectSshaspModel { get; set; }
我收到此错误:
[InvalidCastException:无法将类型为'Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable'1 [xxxAPI.Models.ProjectSshasp]'的类型强制转换为'xxxAPI.Models.ProjectSshasp'。
在此行:
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);