• 未实现该方法或操作 总结


    UserInfo类调试中出错

    用户代码未处理 System.NotImplementedException   HResult=-2147467263   Message=。 Source=Ahaha.OA.NHDAL   StackTrace: 在 Ahaha.OA.NHDAL.UserInfoDal.GetEntities(Expression`1 whereLambda) 位置 f:vs_objectAhaha.OAAhaha.OA.NHDALUserInfoDal.cs:行号 19 在 Ahaha.OA.BLL.BaseService`1.GetEntities(Expression`1 whereLambda) 位置 f:vs_objectAhaha.OAAhaha.OA.BLLBaseService.cs:行号 45 在 Ahaha.OA.UI.Portal.Controllers.UserInfoController.Index() 位置 f:vs_objectAhaha.OAAhaha.OA.UI.PortalControllersUserInfoController.cs:行号 37 在 lambda_method(Closure , ControllerBase , Object[] ) 在 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.<>c__DisplayClass42.<BeginInvokeSynchronousActionMethod>b__41() 在 System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass8`1.<BeginSynchronous>b__7(IAsyncResult _) 在 System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`1.End() 在 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) 在 System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass37.<>c__DisplayClass39.<BeginInvokeActionMethodWithFilters>b__33() 在 System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass4f.<InvokeActionMethodFilterAsynchronously>b__49()   InnerException:

    为什么报错的位置是:   

     一、 在 Ahaha.OA.UI.Portal.Controllers.UserInfoController.Index() 位置 f:vs_objectAhaha.OAAhaha.OA.UI.PortalControllersUserInfoController.cs:行号 37

    二、在 Ahaha.OA.BLL.BaseService`1.GetEntities(Expression`1 whereLambda) 位置 f:vs_objectAhaha.OAAhaha.OA.BLLBaseService.cs:行号 45

    原因:

    1、BLL层的BaseService通过抽象工厂Ahaha.OA.DALFactory.StaticDalFactory DAL层,结果就到了EFDAL。

    2、Ahaha.OA.DALFactory.StaticDalFactory中

       public static string assemblyName = System.Configuration.ConfigurationManager.AppSettings["DalAssemblyName"];   

       return Assembly.Load(assemblyName).CreateInstance(assemblyName + ".UserInfoDal") as IUserInfoDal;

    3、Ahaha.OA.UI.Portal的web.config中

    <!--抽象工厂创建数据库访问层实例所在的程序集名称-->    

    <add key="DalAssemblyName" value="Ahaha.OA.NHDAL" />

    三、在 Ahaha.OA.NHDAL.UserInfoDal.GetEntities(Expression`1 whereLambda) 位置 f:vs_objectAhaha.OAAhaha.OA.NHDALUserInfoDal.cs:行号 19

    原因:NHDAL根本没有写完整。当初写NHDAL只为了测试抽象工厂能不能实现数据库驱动访问层的更换,随便写了一个几乎是空实现的NHDAL,最后忘记改回来。导致后续工作中出现Bug。

    改正:  <add key="DalAssemblyName" value="Ahaha.OA.EFDAL" />

    总结:提示消息顺序是从深层到表层,它已经把可能错误的位置告诉我们了,我们需要冷静耐心的看错误提示,一个一个的排除错误可能项,逐渐缩小范围。

  • 相关阅读:
    Red Hat Enterprise Linux 7的新功能
    Unix/Linux环境C编程入门教程(41) C语言库函数的文件操作详解
    Unix/Linux环境C编程入门教程(40) 初识文件操作
    hadoop 1.2.1 安装步骤 伪分布式
    heritrix 3.2.0 -- 环境搭建
    nyoj301递推求值
    nyoj301递推求值
    luogu1962斐波那契数列
    矩阵快速幂模板
    矩阵快速幂模板
  • 原文地址:https://www.cnblogs.com/hao-1234-1234/p/6067538.html
Copyright © 2020-2023  润新知