Kendo 网格填充并发布所有导航属性
Kendo Grid populates and posts all of the navigation properties
我有一个 Kendo UI 网格,它使用 Serial
class 作为模型。此 class 与 row
class 相关,但我没有在我的网格中使用任何导航属性,并且我不需要在该特定页面中使用它们。
问题是,Kendo UI 填充了所有外键关系。因此 row
class 及其自身的所有导航属性都将被填充。当我尝试保存我的编辑时,Kendo 发布了所有这些数据,这导致 ModelState.IsValid
始终是 false
。你有什么建议吗?
这是 Serial
class,每个 属性 都有一个字段。
public class Serial
{
[Key]
[Column(TypeName = "BIGINT", Order = 0)]
public Int64 LiIdR { get; set; }
[ForeignKey("LiIdR")]
public virtual Rows Row { get; set; }
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Int16 SRadifS { get; set; }
public string AFromSerial { get; set; }
public string AToSerial { get; set; }
public int? IQnty { get; set; }
public string AExpireDate { get; set; }
public string AComment { get; set; }
}
在您的视图中使用生成的 Entity Framework 对象通常是一种不好的做法。您的视图不应依赖于数据访问层。
您应该做的是将 EF 实体转换为 business/data 层中的视图模型(仅包含您的网格需要的内容)。这将解决您的问题。
在 edit/create 上,您只需将视图模型转换回 EF 对象并将更改保存到数据库。
如果出于某种原因,您的视图需要某些您不想向用户显示的属性,您可以将它们作为 Hidden()
列添加到网格中。然后他们将被发回控制器。
我有一个 Kendo UI 网格,它使用 Serial
class 作为模型。此 class 与 row
class 相关,但我没有在我的网格中使用任何导航属性,并且我不需要在该特定页面中使用它们。
问题是,Kendo UI 填充了所有外键关系。因此 row
class 及其自身的所有导航属性都将被填充。当我尝试保存我的编辑时,Kendo 发布了所有这些数据,这导致 ModelState.IsValid
始终是 false
。你有什么建议吗?
这是 Serial
class,每个 属性 都有一个字段。
public class Serial
{
[Key]
[Column(TypeName = "BIGINT", Order = 0)]
public Int64 LiIdR { get; set; }
[ForeignKey("LiIdR")]
public virtual Rows Row { get; set; }
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Int16 SRadifS { get; set; }
public string AFromSerial { get; set; }
public string AToSerial { get; set; }
public int? IQnty { get; set; }
public string AExpireDate { get; set; }
public string AComment { get; set; }
}
在您的视图中使用生成的 Entity Framework 对象通常是一种不好的做法。您的视图不应依赖于数据访问层。
您应该做的是将 EF 实体转换为 business/data 层中的视图模型(仅包含您的网格需要的内容)。这将解决您的问题。
在 edit/create 上,您只需将视图模型转换回 EF 对象并将更改保存到数据库。
如果出于某种原因,您的视图需要某些您不想向用户显示的属性,您可以将它们作为 Hidden()
列添加到网格中。然后他们将被发回控制器。