gpt4 book ai didi

vb.net - 无法加载类型 'System.Data.Entity.Core.Mapping.EntityContainerMapping'

转载 作者:行者123 更新时间:2023-12-01 13:58:58 25 4
gpt4 key购买 nike

当我调试以下代码时,在执行 System.TypeLoadException 时收到消息“Delete() 被捕获” .

Using db As New ScholarshipEntities

db.ApplicationHistories.Where(Function(h) h.HistoryTypeId = 0).Delete()
db.SaveChanges()

End Using

我在 Visual Studio 2013 中使用 EF 6.1。我还安装了 EntityFramework.Extended 库。

我查询结果没有问题。我认为错误可能会在 Where 时发生。方法没有结果,但事实并非如此。我添加新模型 (.edmx) 也没有问题,这是一些有此异常的人遇到的问题。

我最近刚升级到 EF 6.1 并安装了扩展库。这是我第一次使用其中一种扩展方法。我已经卸载并重新安装了 nuget 包,但没有成功。

IntelliTrace 显示 Delete() 中的以下异常调用(按顺序):

  • 'EntityFramework.Reflection.DynamicProxy' does not contain a definition for 'InternalQuery'
  • Cannot implicitly convert type 'EntityFramework.Reflection.DynamicProxy' to 'System.Data.Entity.Core.Objects.ObjectQuery<Scholarship.ApplicationHistory>'
  • Could not load type 'System.Data.Entity.Core.Mapping.EntityContainerMapping'

我已经 added an issue在扩展库的 github 上。

更新我已经重新安装了 EF 和 EF.Extended 库,但没有成功。我可以使用 RemoveRange在它的地方。我能够创建一个新项目,安装包,添加一个映射到同一数据库的模型,并成功使用 Delete .显然,问题出在我当前的解决方案中。

在我的解决方案中,我有一个 ASP.NET 项目和一个常规库项目。在ASP项目中,一个页面的代码隐藏调用库中的一个方法RemoveHistory .该库包含用于业务逻辑和数据访问的类。这两个类都实现了接口(interface)。实际Delete发生在数据访问类中。我的模型也驻留在这个库项目中。

我也许可以创建一个全新的项目并将所有内容都带过来,但这需要相当长的时间。即使我这样做了,我想首先了解为什么它不起作用,这样我就不必重复这个过程。

最佳答案

如果你想删除某些行,这样做:

Using db As New ScholarshipEntities

db.ApplicationHistories.RemoveRange(db.ApplicationHistories.Where(Function(h) h.HistoryTypeId = 0))
db.SaveChanges()

End Using

如果您想删除单个实体,请这样做:

Using db As New ScholarshipEntities

db.ApplicationHistories.Remove(db.ApplicationHistories.Single(Function(h) h.HistoryTypeId = 0))
db.SaveChanges()

End Using

关于vb.net - 无法加载类型 'System.Data.Entity.Core.Mapping.EntityContainerMapping',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23435777/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com