Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 如何在不获取额外行的情况下填充稀疏表_Asp.net Mvc_Entity Framework_Entity Framework 6 - Fatal编程技术网

Asp.net mvc 如何在不获取额外行的情况下填充稀疏表

Asp.net mvc 如何在不获取额外行的情况下填充稀疏表,asp.net-mvc,entity-framework,entity-framework-6,Asp.net Mvc,Entity Framework,Entity Framework 6,现有MVC代码,添加新的稀疏填充子表。 此表是稀疏的,因此相应的行并不总是存在。所以一对零或者和父母一对一 在我的更新页面上。。。 如果我将ID作为隐藏字段 @Html.TextBoxFor(cm => cm.SparseTable.SparseID, new { @class = "hidden" }) 然后,只要行是预先存在的,它就可以工作。 如果该行不存在,则不会填充ID,并且ModelState.IsValid为false 如果我注释掉隐藏的行,那么模型是有

现有MVC代码,添加新的稀疏填充子表。
此表是稀疏的,因此相应的行并不总是存在。所以一对零或者和父母一对一

在我的更新页面上。。。 如果我将ID作为隐藏字段

 @Html.TextBoxFor(cm => cm.SparseTable.SparseID, new { @class = "hidden" })
然后,只要行是预先存在的,它就可以工作。
如果该行不存在,则不会填充ID,并且ModelState.IsValid为false

如果我注释掉隐藏的行,那么模型是有效的,如果有,数据会被输入到数据库中。但即使行确实存在,也不会设置ID。因此,每次更新此客户端时,它都会创建一个新行

我想要UpdateOrCreate,但是如果行不存在,我看不出如何通过IsValid

模型


如果可选,请将int更改为
int?
,或手动删除错误。
[DataContract]
public class SparseTable : IParentID
{
    [DataMember]
    public int SparseID { get; set; }

    [DataMember]
    public int ParentID { get; set; }

    [DataMember]
    public bool OtherData { get; set; }
    .....