C# EF Core从子表返回特定列
我不想使用.include来获取整个子表。我只需要选择列C# EF Core从子表返回特定列,c#,linq,entity-framework-core,C#,Linq,Entity Framework Core,我不想使用.include来获取整个子表。我只需要选择列 public class ProjectTypeDTO { public string Type { get; set; } } public class CourseDTO { public string CourseCode { get; set; } public string CourseTitle { get; set; } } public class ProjectDTO { public
public class ProjectTypeDTO {
public string Type { get; set; }
}
public class CourseDTO {
public string CourseCode { get; set; }
public string CourseTitle { get; set; }
}
public class ProjectDTO {
public int Id { get; set; }
public ProjectTypeDTO ProjectType { get; set; }
public CourseDTO Course { get; set; }
public string StartTerm { get; set; }
public DateTime SignOff { get; set; }
public DateTime StartDateTime { get; set; }
}
[HttpGet("getallprojects")]
public IActionResult GetAllProjects()
{
var projects = _context.Projects
.Select(p => new ProjectDTO
{
Id = p.Id,
ProjectType = { Type = p.ProjectType.Type },
Course = { CourseCode = p.Course.CourseCode, CourseTitle = p.Course.CourseTitle },
StartTerm = p.StartTerm,
SignOff = p.SignOff,
StartDateTime = p.StartDateTime,
}).ToList();
return Ok(projects);
}
这会引发“NotImplementedException:方法或操作未实现”错误
我已经把它作为一个匿名函数进行了测试,它可以正常工作
var projects = _context.Projects
.Select(p => new
{
p.Id,
p.ProjectType.Type,
p.SignOff,
p.StartDateTime,
p.Course.CourseCode,
p.Course.CourseTitle,
p.StartTerm
}).ToList();
匿名类型不适用于我的应用程序,因为我需要能够在数据返回之前对此数据进行更改
根据我在这里看到的其他例子和其他网站,这看起来是正确的。这可能是个bug吗?我以前没有见过子对象的语法。例如:
ProjectType = { Type = p.ProjectType.Type }
我认为应该是:
ProjectType = new ProjectTypeDTO{ Type = p.ProjectType.Type }
我以前没有见过子对象的语法。例如:
ProjectType = { Type = p.ProjectType.Type }
我认为应该是:
ProjectType = new ProjectTypeDTO{ Type = p.ProjectType.Type }
那是什么
ProjectType={Type=p.ProjectType.Type}
?这不应该是ProjectType=newprojecttypedto{Type=p.ProjectType.Type}
?与课程相同
那是什么ProjectType={Type=p.ProjectType.Type}
?这不应该是ProjectType=newprojecttypedto{Type=p.ProjectType.Type}
?与课程相同