asp.net 核心 2.1,Include() 函数不适用于数据库优先方法
asp.net core 2.1, Include() fonction doesn't work with db first approch
我创建新项目 asp.net 2.1 api 用于测试数据库优先方法,我有用于测试的数据库 "DBTest" 它包含“患者” table、“药物”和“疾病”tables 用外键引用“患者”table,
为了创建模型,我使用了这个命令:
PM> Scaffold-DbContext "Server=.\SQLEXPRESS;Database=DBtest;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models2 -Context "DataContext2"
模型和DBcontext生成成功,
public partial class Patients
{
public Patients()
{
Ailments = new HashSet<Ailments>();
Medications = new HashSet<Medications>();
}
public int PatientId { get; set; }
public string Name { get; set; }
public ICollection<Ailments> Ailments { get; set; }
public ICollection<Medications> Medications { get; set; }
}
我为 Patients 创建了一个控制器 api,GET 方法给出了正确的响应(我用 Postman 测试),但是当我使用 Include() 函数时,例如:
// GET: api/Patients2
[HttpGet]
public IEnumerable<Patients> GetPatients()
{
return _context.Patients.Include(a => a.Ailments).ToList();
}
我没有回应,
我在浏览器的控制台中发现了这个错误
在代码优先方法中一切正常,但在数据库优先方法中我尝试了很多次(将药水添加到脚手架命令.....)但没有任何帮助,
有人遇到过这个问题吗?
试试这个:
services.AddMvc()
.AddJsonOptions(x =>
x.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore)
.SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
我创建新项目 asp.net 2.1 api 用于测试数据库优先方法,我有用于测试的数据库 "DBTest" 它包含“患者” table、“药物”和“疾病”tables 用外键引用“患者”table,
为了创建模型,我使用了这个命令: PM> Scaffold-DbContext "Server=.\SQLEXPRESS;Database=DBtest;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models2 -Context "DataContext2"
模型和DBcontext生成成功,
public partial class Patients
{
public Patients()
{
Ailments = new HashSet<Ailments>();
Medications = new HashSet<Medications>();
}
public int PatientId { get; set; }
public string Name { get; set; }
public ICollection<Ailments> Ailments { get; set; }
public ICollection<Medications> Medications { get; set; }
}
我为 Patients 创建了一个控制器 api,GET 方法给出了正确的响应(我用 Postman 测试),但是当我使用 Include() 函数时,例如:
// GET: api/Patients2
[HttpGet]
public IEnumerable<Patients> GetPatients()
{
return _context.Patients.Include(a => a.Ailments).ToList();
}
我没有回应,
我在浏览器的控制台中发现了这个错误
在代码优先方法中一切正常,但在数据库优先方法中我尝试了很多次(将药水添加到脚手架命令.....)但没有任何帮助,
有人遇到过这个问题吗?
试试这个:
services.AddMvc()
.AddJsonOptions(x =>
x.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore)
.SetCompatibilityVersion(CompatibilityVersion.Version_2_1);