MVC中解决EF自动带的s的异常信息
来源:互联网 发布:照片缩小软件手机 编辑:程序博客网 时间:2024/06/06 08:46
异常信息如下:
发生了 System.Data.Entity.Infrastructure.DbUpdateException HResult=0x80131501 Message=更新条目时出错。有关详细信息,请参见内部异常。 Source=EntityFramework StackTrace: 在 System.Data.Entity.Internal.InternalContext.SaveChanges() 在 System.Data.Entity.Internal.LazyInternalContext.SaveChanges() 在 System.Data.Entity.DbContext.SaveChanges() 在 GMS.Framework.DAL.DbContextBase.SaveChanges() 在 C:\GMS1\Src\GMS.Framework.DAL\DbContextBase.cs 中: 第 82 行 在 GMS.Framework.DAL.DbContextBase.Insert[T](T entity) 在 C:\GMS1\Src\GMS.Framework.DAL\DbContextBase.cs 中: 第 49 行 在 GMS.Account.BLL.AccountService.SaveVerifyCode(String verifyCodeText) 在 C:\GMS1\Src\GMS.Account.BLL\AccountService.cs 中: 第 237 行 在 Castle.Proxies.Invocations.IAccountService_SaveVerifyCode.InvokeMethodOnTarget() 在 Castle.DynamicProxy.AbstractInvocation.Proceed() 在 GMS.Core.Service.InvokeInterceptor.Intercept(IInvocation invocation) 在 C:\GMS1\Src\GMS.Core.Service\ServiceHelper.cs 中: 第 64 行 在 Castle.DynamicProxy.AbstractInvocation.Proceed() 在 Castle.Proxies.IAccountServiceProxy.SaveVerifyCode(String verifyCodeText) 在 GMS.Web.VerifyCodeHelper.SaveVerifyCode(String verifyCode) 在 C:\GMS1\Src\GMS.Web\VerifyCodeHelper.cs 中: 第 10 行 在 GMS.Web.Admin.Areas.Account.Controllers.CommonController.VerifyImage() 在 C:\GMS1\Src\GMS.Web.Admin\Areas\Account\Controllers\CommonController.cs 中: 第 16 行 在 System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) 在 System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) 在 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) 在 System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState) 在 System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult) 在 System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End() 在 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) 在 System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3d() 在 System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f()内部异常 1:UpdateException: 更新条目时出错。有关详细信息,请参见内部异常。内部异常 2:SqlException: 对象名 'dbo.VerifyCodes' 无效。
注意:这里主要是内部异常2,SqlException对象名'dbo.VerifyCodes'无效的异常的解决方案.
1、模型类如下,注意模型类中的类名VerifyCode,Table属性中也是为VerifyCode
using System;using GMS.Framework.Contract;using System.ComponentModel.DataAnnotations.Schema;namespace GMS.Account.Contract{ [Serializable] [Table("VerifyCode")] public class VerifyCode : ModelBase { public Guid Guid { get; set; } public string VerifyText { get; set; } }}
2、查找到数据库中的表,注意数据库中的表名也是VerifyCode
3、从以上两步我们就了解到不是模型类名与数据库表名的问题,那么就是我们真正的解决方案了:
找到DbContext类的派生类,然后重写OnModelCreating方法
本案例中代码如下:
protected override void OnModelCreating(DbModelBuilder modelBuilder) { Database.SetInitializer<AccountDbContext>(null); modelBuilder.Entity<User>() .HasMany(e => e.Roles) .WithMany(e => e.Users) .Map(m => { m.ToTable("UserRole"); m.MapLeftKey("UserID"); m.MapRightKey("RoleID"); }); base.OnModelCreating(modelBuilder); modelBuilder.Conventions.Remove<System.Data.Entity.ModelConfiguration.Conventions.PluralizingTableNameConvention>();//注意这句话就是我们真正要添加的,可以防止自动加s }
到这里,我们就大功告成了
1 0
- MVC中解决EF自动带的s的异常信息
- MVC EF执行带输出参数的存储过程
- 解决MVC中JSON字符长度超出限制的异常
- MVC框架的EF删除
- MVC中使用EF(2):实现基本的CRUD功能
- Mvc EF使用中出现LocalDB Error52的
- MVC中异常的位置
- MVC中使用EF(4):ASP.NET MVC 创建更复杂的数据模型
- EF异常:“System.InvalidOperationException”类型的未经处理的异常在 mscorlib.dll 中发生
- EF异常:“System.InvalidOperationException”类型的未经处理的异常在 mscorlib.dll 中发生
- 最快学习MVC、EF的途径
- MVC EF学习碰到的问题
- MVC和EF 和LINQ 的关系
- 在MVC中处理异常的总结
- Spring MVC 对象中子对象的自动封装 异常处理
- 《EasyUI + MVC + EF +WCF》——实现对Datagrid中数据的批量修改或保存
- 使用mvc+ef从数据库中读取树形菜单自己写的小例子
- VS2012 EF上下文 错误的问题 解决
- c++协程2 (boost::coroutine)
- 修改图片颜色 色相 饱和度 亮度 ColorMatrix
- 微信小程序 修改窗口的背景色
- spring @ModelAttribute
- Spring Boot 学习1--Spring boot起步之Hello World
- MVC中解决EF自动带的s的异常信息
- 使用正则表达式校验字符串是否为数值(包含小数与负数)
- 关于CString初始化时提示字符串太大的解决
- block weak self strongself
- access转成sqlsever后无法添加数据,解决方法参考
- oracle process和session
- 校招准备系列:每天一道算法题(3)
- 面试题总结 —— JAVA高级工程师
- 每日三题-Day3-C(HDU 1257 最少拦截系统 最长上升子序列O(nlogn) )