未实现该方法或操作 总结
UserInfo类调试中出错
用户代码未处理 System.NotImplementedException HResult=-2147467263 Message=。 Source=Ahaha.OA.NHDAL StackTrace: 在 Ahaha.OA.NHDAL.UserInfoDal.GetEntities(Expression`1 whereLambda) 位置 f:\vs_object\Ahaha.OA\Ahaha.OA.NHDAL\UserInfoDal.cs:行号 19 在 Ahaha.OA.BLL.BaseService`1.GetEntities(Expression`1 whereLambda) 位置 f:\vs_object\Ahaha.OA\Ahaha.OA.BLL\BaseService.cs:行号 45 在 Ahaha.OA.UI.Portal.Controllers.UserInfoController.Index() 位置 f:\vs_object\Ahaha.OA\Ahaha.OA.UI.Portal\Controllers\UserInfoController.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_object\Ahaha.OA\Ahaha.OA.UI.Portal\Controllers\UserInfoController.cs:行号 37
二、在 Ahaha.OA.BLL.BaseService`1.GetEntities(Expression`1 whereLambda) 位置 f:\vs_object\Ahaha.OA\Ahaha.OA.BLL\BaseService.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_object\Ahaha.OA\Ahaha.OA.NHDAL\UserInfoDal.cs:行号 19
原因:NHDAL根本没有写完整。当初写NHDAL只为了测试抽象工厂能不能实现数据库驱动访问层的更换,随便写了一个几乎是空实现的NHDAL,最后忘记改回来。导致后续工作中出现Bug。
改正: <add key="DalAssemblyName" value="Ahaha.OA.EFDAL" />
总结:提示消息顺序是从深层到表层,它已经把可能错误的位置告诉我们了,我们需要冷静耐心的看错误提示,一个一个的排除错误可能项,逐渐缩小范围。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具