Joh*_*son 16 c# entity-framework-core
一直在玩ef核心,并且在include语句中遇到了问题.对于这个代码我得到2家公司,这是我所期望的.
public IEnumerable<Company> GetAllCompanies(HsDbContext db)
{
var c = db.Company;
return c;
}
Run Code Online (Sandbox Code Playgroud)
这回来了
[
{
"id":1,
"companyName":"new",
"admins":null,
"employees":null,
"courses":null
},
{
"id":2,
"companyName":"Test Company",
"admins":null,
"employees":null,
"courses":null
}
]
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,有2家公司,所有相关的属性都是null,因为我曾经使用过任何包含,这正是我的预期.现在,当我将方法更新为:
public IEnumerable<Company> GetAllCompanies(HsDbContext db)
{
var c = db.Company
.Include(t => t.Employees)
.Include(t => t.Admins)
.ToList();
return c;
}
Run Code Online (Sandbox Code Playgroud)
这是它返回的内容:
[
{
"id":1,
"companyName":"new",
"admins":[
{
"id":2,
"forename":"User",
"surname":"1",
"companyId":1
}
]
}
]
Run Code Online (Sandbox Code Playgroud)
它只返回一家公司,只包括管理员.为什么不包括这两家公司及其员工?
public class Company
{
public int Id { get; set; }
public string CompanyName { get; set; }
public List<Admin> Admins { get; set; }
public List<Employee> Employees { get; set; }
public List<Course> Courses { get; set; }
public string GetFullName()
{
return CompanyName;
}
}
public class Employee
{
public int Id { get; set; }
public string Forename { get; set; }
public string Surname { get; set; }
public int CompanyId { get; set; }
[ForeignKey("CompanyId")]
public Company company { get; set; }
public ICollection<EmployeeCourse> Employeecourses { get; set; }
}
public class Admin
{
public int Id { get; set; }
public string Forename { get; set; }
public string Surname { get; set; }
public int CompanyId { get; set; }
[ForeignKey("CompanyId")]
public Company Company { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
Ash*_*Bye 26
我不确定你是否已经看到了这个问题的公认答案,但问题在于JSON Serializer如何处理循环引用.有关更多参考资料的完整详细信息和链接可以在上面的链接中找到,我建议深入研究这些内容,但简而言之,添加以下内容startup.cs将配置序列化程序以忽略循环引用:
services.AddMvc()
.AddJsonOptions(options => {
options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16077 次 |
| 最近记录: |