我正在创建一个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 模型上定义外键的更多信息,因此请将所有这些连接在一起,因为我认为本教程不包含与此相关的任何内容。