Linq 正在获取Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable`1[ProjectName.DTOs.ProjectDTO]而不是实际数据
我正在做我的.NETMVC核心项目。我试图通过在控制器中使用LINQ连接两个表来获得项目名称。 我的控制器代码:Linq 正在获取Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable`1[ProjectName.DTOs.ProjectDTO]而不是实际数据,linq,asp.net-core,entity-framework-core,Linq,Asp.net Core,Entity Framework Core,我正在做我的.NETMVC核心项目。我试图通过在控制器中使用LINQ连接两个表来获得项目名称。 我的控制器代码: public IActionResult Projects() { var projectName = from p in _context.Tbl_Projects join d in _context.Tbl_MyOfficeDocumets on p.Id equals d.Project_ID
public IActionResult Projects()
{
var projectName = from p in _context.Tbl_Projects
join d in _context.Tbl_MyOfficeDocumets on p.Id equals d.Project_ID
select new ProjectDTO { ProjectName = p.ProjectName };
ProjectDTO proj = new ProjectDTO { ProjectName = projectName; }
return View(proj);
}
和Razor查看页面:
<table>
<tr>
<td>Your Projects</td>
<td>Description</td>
<td>Created On</td>
</tr>
@foreach(var item in Model.listOfProjects)
<tr>
<td>@Model.ProjectName</td> <-- Here I am getting that unusual response
<td>@item.Description</td>
<td>@item.CreatedOn</td>
</tr>
</table>
你的项目
描述
创建于
@foreach(Model.listOfProjects中的var项)
@Model.ProjectName您已创建查询并将其分配给DTO,这是错误的
public IActionResult Projects()
{
var query = from p in _context.Tbl_Projects
join d in _context.Tbl_MyOfficeDocumets on p.Id equals d.Project_ID
select new ProjectDTO { ProjectName = p.ProjectName };
return View(query);
}
您第二次将ProjectDTO绑定到字符串ProjectName。我不明白为什么当您已经有ProjectDTO时,仍然要再次绑定。您可以像这样使用ProjectDTO proj=new ProjectDTO{ProjectName=ProjectName.ProjectName;}