如何使用 EF Core C# 将 List<> 数据添加到 List<> 变量



我正在创建一个CRUD Web API,我只是按照这个Microsoft教程进行操作。就我而言,我有two models

First_Model.cs

// i removed other unnecessary data
public string Id { get; set; }
public IList<Second_Model> Second_Models {get; set;} = new List<Second_Model>();

Second_Model.cs

// i removed other unnecessary data
public string Id { get; set; }

就像在教程中一样,它将静态添加集合的默认值,因此我想将List<Second_Model>添加到Second_Models

这是我在First_ModelController.cs中尝试过的

_context.First_Models.Add(
new First_Model {
Id = "default_id",
Second_Models = new List<Second_Model>() {
new List<Second_Model>().Find(p => p.Id == "default_id")
// given that Second_Model also has default_id
};
}
);

但是,这组代码将返回此错误:

ArgumentNullException: Value cannot be null. Parameter name: key

静态创建对象列表看起来更像这样:

....
Id = "default_id",
Second_Models = new List<Second_Model>() {
new Second_Model() { Id = "<your second model ID 1>", OtherProperty = <value> },
new Second_Model() { Id = "<your second model ID 2>", OtherProperty = <value> },
}

但是,如果要将它们直接添加到上下文中,则需要执行以下操作:

_context.Second_Models.Add(
new Second_Model() {
Id = "<your second model ID 1>",
OtherProperty = <value>,
}
);
... repeat ...

不过,这并不能将second_model与first_model联系起来。
您可能需要阅读有关在 EF 模型上定义外键的更多信息,因此请将所有这些连接在一起,因为我认为本教程不包含与此相关的任何内容。

相关内容

  • 没有找到相关文章

最新更新