Asp.net MVC5实体框架部分类扩展

Asp.net MVC5实体框架部分类扩展,asp.net,entity-framework,Asp.net,Entity Framework,我有一个关于ASP.NETMVC5和实体框架的问题。 我使用现有的软件数据库。 有一个名为“CLI”的表,其中包含许多字段 在我的网站中,我有一个名为“CLI”的实体。 “CLI”可以是客户端或传递地址(在同一个表中)。唯一的区别是一个字段的值(C_LIV_SEUL) 我有一个分部类“CLI”,在多个字段上有“Required”等数据注释。 问题在于,客户机和交付地址没有相同的“必需” 例如,对于客户机,字段“C_NOM”是必需的。 对于交付地址,不需要“C_NOM” 在我看来,当我有一个表单来

我有一个关于ASP.NETMVC5和实体框架的问题。 我使用现有的软件数据库。 有一个名为“CLI”的表,其中包含许多字段

在我的网站中,我有一个名为“CLI”的实体。 “CLI”可以是客户端或传递地址(在同一个表中)。唯一的区别是一个字段的值(C_LIV_SEUL)

我有一个分部类“CLI”,在多个字段上有“Required”等数据注释。 问题在于,客户机和交付地址没有相同的“必需”

例如,对于客户机,字段“C_NOM”是必需的。 对于交付地址,不需要“C_NOM”

在我看来,当我有一个表单来更新送货地址时,我不会显示“C_-NOM”,因为它不是必需的。 但是当我有一个更新客户端的视图时,我会显示“C_NOM”,因为它是必需的

我该怎么做? 我考虑继承,但我不能对datacontext应用更改(因为它不是“CLI”实体),也不能添加类型为“Client”或“DeliveryAddress”的实体

我还尝试使用ModelState(ModelState.Remove(“C_NOM”)),但当我保存更改时,错误仍然存在


谢谢大家的帮助

“但我无法应用更改或添加实体”-如果您无法更改任何内容,您希望如何解决问题?您需要在此处提供更多详细信息。你对我们有什么期望?为什么不能“应用更改”,为什么不能添加实体?您的约束到底是什么?您是否可以为“客户机”和“DeliveryAddress”创建两个单独的类,然后添加相同的属性,但属性不同(可能让它们为公共属性继承相同的类)。保存任何更改时,您必须将它们转换为您的实体类型。@user2945722 AFAIK这只能通过区分列来完成。表是否有一个区分列?您是否考虑过只使用一个实体,但使用一个。这个场景与您的数据库现实最为接近。是的,我有一个有区别的专栏。假设我有一张桌子。使用实体框架,我有一个链接到数据库的实体“CLI”。我可以添加、删除或更新“CLI”实体。实际上,“CLI”可以是客户端或传递地址。它是同一个表,但有一个字段是不同的。客户端的必填字段与传递地址字段不同。我只有一个分部类“CLI”,但如何才能在视图中具有不同的必填字段?