首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“SaveChanges()”方法出错

“SaveChanges()”方法出错
EN

Stack Overflow用户
提问于 2014-12-16 17:47:25
回答 1查看 603关注 0票数 2

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

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

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

代码语言:javascript
复制
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);
     }
  }

我在视图中使用了以下代码

代码语言:javascript
复制
    <%: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"}) %>

这是我正在使用的模型

代码语言:javascript
复制
namespace CPEASPX.Models
{
    using System;
    using System.Collections.Generic;

    public partial class REQUEST_TAB
    {
        public decimal REQUEST_ID { get; set; }
        public string REQUEST_BY { get; set; }
        public decimal CASE_ID { get; set; }
        public string STATE { get; set; }
        public string REQUEST_TYPE { get; set; }
        public string ROWVERSION { get; set; }
        public string COMMENTS { get; set; }
    }
}

我尝试了其他地方显示的一些解决方案。首先,我修改了web.config文件中的<appSettings>,添加了

代码语言:javascript
复制
<add key="aspnet:MaxHttpCollectionKeys" value="5000" />
<add key="aspnet:MaxJsonDeserializerMembers" value="5000" />
<add key="aspnet:MaxHttpCollectionKeys" value="10000" />

它的台词。但问题依然存在。我找不到客户端和服务器数据类型之间的任何不匹配。

请帮我解决这个问题。

在这里,我将两个模型传递给一个视图。为此,我创建了以下组合模型(c_model是该类的对象)

代码语言:javascript
复制
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace CPEASPX.Models
{
    public class CombineModal
    {
        public REQUEST_TAB request_tab = new REQUEST_TAB();

        public REQUEST_TAB Request_tab
        {
        get { return request_tab; }
        set { request_tab = value; }
        }


        public CPE cpe = new CPE();

        public CPE Cpe
        {
            get { return cpe; }
            set { cpe = value; }
        }
    }
}

这里它说我正在向它传递CPE模型,但我只传递了包含CPE模型和Request_tab模型的组合模型。

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

代码语言:javascript
复制
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<CPEASPX.Models.CombineModal>" %>
EN

回答 1

Stack Overflow用户

发布于 2014-12-16 18:36:49

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

代码语言:javascript
复制
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();
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27501701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档