C# “中的错误”;保存更改();方法

C# “中的错误”;保存更改();方法,c#,asp.net-mvc,asp.net-mvc-4,C#,Asp.net Mvc,Asp.net Mvc 4,我正在使用Oracle数据库和ASP.net MVC4创建一个应用程序。尽管代码中似乎没有问题,但调用SaveChanges()方法会导致如下所示的错误: 此图显示内部异常和相关详细信息 这是我为保存更改所做的实现 if (ModelState.IsValid) { ModelState.Clear(); using (SSP_Entities database = new SSP_Entities()) { database.REQUEST_T

我正在使用Oracle数据库和ASP.net MVC4创建一个应用程序。尽管代码中似乎没有问题,但调用
SaveChanges()
方法会导致如下所示的错误:

此图显示内部异常和相关详细信息

这是我为保存更改所做的实现

if (ModelState.IsValid)
{
    ModelState.Clear();

    using (SSP_Entities database = new SSP_Entities())
    {
          database.REQUEST_TAB.Add(c_modal.Request_tab);
          database.SaveChanges();
          caseID = c_modal.Request_tab.CASE_ID;
          return RedirectToAction("NewEnv", cpe);
     }
  }
我在视图中使用以下代码

    <%:Html.HiddenFor(model => model.request_tab.ROWVERSION, new { @Value="date"}) %>
    <%:Html.HiddenFor(model => model.request_tab.CASE_ID, new { @Value=100}) %>
    <%:Html.HiddenFor(model => model.request_tab.REQUEST_BY, new { @Value="PUSNLK"}) %>
    <%:Html.HiddenFor(model => model.request_tab.REQUEST_ID, new { @Value=334}) %>
    <%:Html.HiddenFor(model => model.request_tab.REQUEST_TYPE, new { @Value="CPE"}) %>
    <%:Html.HiddenFor(model => model.request_tab.STATE, new { @Value="POSTED"}) %>
    <%:Html.HiddenFor(model => model.request_tab.COMMENTS, new { @Value="CPE Order"}) %>
我尝试了其他地方展示的一些解决方案。首先,我通过添加

<add key="aspnet:MaxHttpCollectionKeys" value="5000" />
<add key="aspnet:MaxJsonDeserializerMembers" value="5000" />
<add key="aspnet:MaxHttpCollectionKeys" value="10000" />
这里,它说我将CPE模型传递给它,但我只传递包含CPE模式和请求选项卡模式的组合模型

这是我在视图中用来继承模态类的代码

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<CPEASPX.Models.CombineModal>" %>

我认为您需要分配每个属性,而不是添加整个类

using (SSP_Entities database = new SSP_Entities())
{
    var requestTab = new RequestTab
    {
        REQUEST_ID = c_modal.Request_tab.REQUEST_ID,
        REQUEST_BY = c_modal.Request_tab.REQUEST_BY,
        CASE_ID = c_modal.Request_tab.CASE_ID,
        STATE = c_modal.Request_tab.STATE,
        REQUEST_TYPE = c_modal.Request_tab.REQUEST_TYPE,
        ROWVERSION = c_modal.Request_tab.ROWVERSION,
        COMMENTS = c_modal.Request_tab.COMMENTS
    };

    database.REQUEST_TAB.Add(requestTab);
    database.SaveChanges();
}

viewmodel的声明是什么样子的?我不明白。。你需要模态类吗?你能输出基本异常-
exception.GetBaseException()
,这样我们就可以看到第一个错误是什么了吗?@Sandaru是的,我指的是c_模型的类。这是我得到的基本异常传入字典的模型项的类型为“CPEASPX.Models.CPE”,但此字典需要“CPEASPX.Models.CombineModal”类型的模型项
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<CPEASPX.Models.CombineModal>" %>
using (SSP_Entities database = new SSP_Entities())
{
    var requestTab = new RequestTab
    {
        REQUEST_ID = c_modal.Request_tab.REQUEST_ID,
        REQUEST_BY = c_modal.Request_tab.REQUEST_BY,
        CASE_ID = c_modal.Request_tab.CASE_ID,
        STATE = c_modal.Request_tab.STATE,
        REQUEST_TYPE = c_modal.Request_tab.REQUEST_TYPE,
        ROWVERSION = c_modal.Request_tab.ROWVERSION,
        COMMENTS = c_modal.Request_tab.COMMENTS
    };

    database.REQUEST_TAB.Add(requestTab);
    database.SaveChanges();
}