我正在创建一个CRUD Web API,我只是遵循此Microsoft tutorial。就我而言,我有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
答案 0 :(得分:0)
静态创建对象列表看起来像这样:
....
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 ...
尽管如此,第二个模型和第一个模型并没有关联。
您可能需要阅读有关在EF模型上定义外键的更多信息,因此,请使它们全部结合在一起,因为我认为本教程不包含与此相关的任何内容。