我一直在努力解决这个例外:
The member 'Add' has not been implemented on type 'DbSet`1' which inherits
from 'DbSet`1'. Test doubles for 'DbSet`1' must provide implementations of
methods and properties that are used.
当我研究这个特定的例外时,所有结果都指向修改单元测试中的模拟。有趣的是,我已经卸载了我的单元测试项目和所有嘲弄的东西。对总体System.ServiceModel.FaultException
的研究返回了非常广泛的结果,其中一些我试图无济于事。我仔细研究了.csproj文件,.soln文件和网页。和app.configs,但没有任何事情像我一样跳出来。
这是我的情况:
我正在使用ASP.NET MVC作为我的WCF服务的客户端,该服务运行一些报告工具。我正在使用Entity Framework Code First来获取ASP.NET MVC客户端生成的报告工具和配置的数据库结果。如上所述,我暂时卸载了我的单元测试项目。
在我的控制器中,我有类似的东西:
[HttpPost]
public ActionResult Create(ReportConfig reportConfig)
{
_Context.ReportConfigs.Add(reportConfig);
_Context.SaveChanges();
_Client.Run(reportConfig, _Context);
return RedirectToAction("index", "reportConfigs");
}
异常发生在_Client.Run(reportConfig, _Context);
行,其中_Client
是生成的ServiceReference客户端类的实例。如果我跳过异常,MVC客户端将继续运行,但该服务不会调用Run(...)
方法。我一直在使用SvcTraceViewer.exe来获取更多信息。以下是堆栈跟踪的前几行:
System.Data.Entity.DbSet`1.GetInternalSetWithCheck(String memberName)
System.Data.Entity.DbSet`1.Add(TEntity entity)
ReadArrayOfReportFromXml(XmlReaderDelegator , XmlObjectSerializerReadContext , XmlDictionaryString , XmlDictionaryString , CollectionDataContract )
System.Runtime.Serialization.CollectionDataContract.ReadXmlValue(XmlReaderDelegator xmlReader, XmlObjectSerializerReadContext context)
System.Runtime.Serialization.XmlObjectSerializerReadContext.InternalDeserialize(XmlReaderDelegator reader, String name, String ns, Type declaredType, DataContract& dataContract)
System.Runtime.Serialization.XmlObjectSerializerReadContext.InternalDeserialize(XmlReaderDelegator xmlReader, Int32 id, RuntimeTypeHandle declaredTypeHandle, String name, String ns)
ReadReportsContextFromXml(XmlReaderDelegator , XmlObjectSerializerReadContext , XmlDictionaryString[] , XmlDictionaryString[] )
System.Runtime.Serialization.ClassDataContract.ReadXmlValue(XmlReaderDelegator xmlReader, XmlObjectSerializerReadContext context)
以下是来自SvcTraceViewer的一些其他信息:
Activity Name Process action 'http://tempuri.org/IReportService/Run'.
Time 2016-05-18 15:02:30.1716
Level Error
Source System.ServiceModel
Process WcfSvcHost
Thread 11
我现在只保持简单,只使用Visual Studio Hosting Process。我已经清理了解决方案,删除了bin / obj目录,重新生成了服务参考,关闭了延迟加载&代理生成我的实体...我正在我的智慧结束。如果在类似情况下有任何人遇到过此例外情况,我可以采取哪些步骤来解决这个问题?
我是StackOverflow的新手,所以如果我可以改进这个问题或提供任何其他信息,请告诉我。
非常感谢!