c# - 列表未保存在 EF Core 2 中
问题描述
我将 EF Core 2.2 与 ASP.net MVC Core 2.2 一起使用。
我有一个带有未存储到表中的 List 数组的实体。我认为它会写出数组中对象的外键列表,但事实并非如此。我忘记了什么?
public class ProjectModel
{
[Key]
public int ID { get; set; }
public List<MyObject> ListOfObjects { get; set; }
}
public class MyObject
{
[Key]
public int ID { get; set; }
[Required]
public string Name{ get; set; }
}
发生添加和保存的代码:
MyObject cm = MethodToGenerateObject();
if(pm.ListOfObjects == null)
{
pm.ListOfObjects = new List<MyObject>();
}
pm.ListOfObjects.Add(cm);
_context.Entry(pm).State = EntityState.Modified;
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
throw;
}
但是没有 MyObject 数据保存到数据库中。为什么?
解决方案
感谢@Sam,我搜索了导航属性并找到了这个有用的指南: https ://www.learnentityframeworkcore.com/conventions/one-to-many-relationship
第一个一对多关系示例帮助解决了我的问题。