问题标签 [entity-framework-extended]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1617 浏览

c# - EntityFramework.Extended 更新不起作用 - 无法转换 DynamicProxy

我正在使用 Entity Framework 6 并尝试使用 EntityFramework.Extended 进行一些批量更新:

TicketOrderItem 是 OrderItem 的扩展。现在执行此操作时,我收到以下错误(从德语翻译,因为我得到了德语):

我已经禁用了延迟加载和代理生成(并通过调试验证了它,没有生成代理):

有没有办法解决这个问题?
或者这是“尚未最终确定”的 EF 6 中的错误,还是 EF.Extended 和 EF 6 之间的不兼容?

0 投票
1 回答
795 浏览

oracle - EntityFramework.Extensions simple .Delete() 抛出空引用异常

因此,我正在尝试使用 EntityFramework.Extended 进行以下操作:

https://github.com/loresoft/EntityFramework.Extended

这是我能提供的最简单的例子。

问题是这个和我尝试做的任何其他 .Delete() 都是给我一个:

我正在针对 Oracle 11gR2 数据库使用 EF 5.0.0 和 EF.Extended 5.0.0.73。

有任何想法吗?:)

GitHub上的交叉帖子:http: //bit.ly/12Z6xj2

0 投票
1 回答
4047 浏览

c#-4.0 - 使用 EntityFramework.Extended 进行批量更新

我正在尝试使用扩展的实体框架进行批量更新,但我不确定如何执行此操作。

到目前为止,这是我拥有的以下代码:

通过上面的查询,它返回 1000 个订单列表。

所以我要实现的目标:更新 custListID where OrderListID in listIds above

现在我正在尝试使用扩展的实体框架。

请告知我如何实现这一目标。

0 投票
1 回答
1247 浏览

entity-framework - 实体框架扩展抛出 DynamicProxy 异常

当尝试使用 EntityFramework.Extended 进行批量更新时,我得到了两个例外之一。

看看我试过 的例子:

我得到以下异常:

“EntityFramework.Reflection.DynamicProxy”不包含“InternalQuery”的定义

...

System.Core.dll!System.Dynamic.UpdateDelegates.UpdateAndExecute1(System.Runtime.CompilerServices.CallSite 站点,对象 arg0) + 0x153 字节

EntityFramework.Extended.dll!EntityFramework.Extensions.ObjectQueryExtensions.ToObjectQuery(System.Linq.IQueryable 查询) + 0x2db 字节

EntityFramework.Extended.dll!EntityFramework.Extensions.BatchExtensions.Update(System.Linq.IQueryable source, System.Linq.Expressions.Expression> updateExpression) + 0xe9 字节

EntityFramework.Extended.dll!EntityFramework.Extensions.BatchExtensions.Update(System.Linq.IQueryable source, System.Linq.Expressions.Expression> updateExpression) + 0xe9 字节

基于github问题,我尝试了:

导致异常(可能与此处报告的错误相同)

“EntityFramework.Reflection.DynamicProxy”不包含“EnsureMetadata”的定义

...

EntityFramework.Extended.dll!EntityFramework.Mapping.ReflectionMappingProvider.FindMappingFragment(System.Collections.Generic.IEnumerable itemCollection, System.Data.Entity.Core.Metadata.Edm.EntitySet entitySet) + 0xc1e 字节

EntityFramework.Extended.dll!EntityFramework.Mapping.ReflectionMappingProvider.CreateEntityMap(System.Data.Entity.Core.Objects.ObjectQuery 查询) + 0x401 字节

EntityFramework.Extended.dll!EntityFramework.Mapping.ReflectionMappingProvider.GetEntityMap(System.Data.Entity.Core.Objects.ObjectQuery 查询) + 0x58 字节

EntityFramework.Extended.dll!EntityFramework.Mapping.MappingResolver.GetEntityMap(System.Data.Entity.Core.Objects.ObjectQuery 查询) + 0x9f 字节

EntityFramework.Extended.dll!EntityFramework.Extensions.BatchExtensions.Update(System.Linq.IQueryable source, System.Linq.Expressions.Expression> updateExpression) + 0x1c8 字节

我尝试了 EF5 的最新版本,并升级到 EF6 以查看最新版本是否有效,但我遇到了同样的问题。我们使用代码优先。

我不确定如何继续,我已经开始尝试了解 EntityFramework.Extensions 代码是如何工作的。但我想知道我是否必须回退到使用存储过程或 SQL,它们都不适合我们的设置。

有谁知道这些问题是什么,或者对如何解决正在发生的事情有任何想法?

0 投票
2 回答
1141 浏览

linq - 实体框架扩展 - 简单的删除给了我空引用

我已经从 nuget 获取了 Entity Framework Extended 源代码,我想使用它的 delete 表达式来使用 ID 删除多行数据。

在我的代码中,我使用 PersonID 来获取 ClaimsID。在两个表中,ClaimsID 是一个 FK,我从中删除的最后一个表是 PK。由于关键约束,我按此顺序执行此操作。

出于某种原因,它给了我一个空引用:

此行代码中断

我尝试注释掉这段代码,但每次删除尝试都会中断。

堆栈跟踪

这不是很多代码,所以我不明白空引用的用途。数据行存在于所有三个表中。

0 投票
0 回答
710 浏览

entity-framework - 使用 EntityFramework Extended 更新

我有一个对象列表,在这种情况下,可以说它是一个字典。我想更新该列表中的每个项目并为其分配一些新值,但是当我运行它时,我得到以下信息。

想法?

错误信息:

当分配给命令的连接处于挂起的本地事务中时,ExecuteReader 要求该命令具有事务。该命令的 Transaction 属性尚未初始化。

代码:

EF Extended githum 上的示例看起来非常相似,所以我不确定我哪里出错了。示例(来自此处):

0 投票
2 回答
2538 浏览

c# - 我如何必须传递一个 MemberInitExpression 对象

当我运行此代码时,我在 Update 方法处遇到异常

我的 updateExpression 有什么问题?

这就是 Update 方法的源代码:

http://www.symbolsource.org/Public/Metadata/NuGet/Project/EntityFramework.Extended/1.0.0.20/Release/.NETFramework,Version%3Dv4.0/EntityFramework.Extended/EntityFramework.Extended/EntityFramework.Extended/Extensions /BatchExtensions.cs?ImageName=EntityFramework.Extended

第 454 行:

为什么我传递的值是空的?我是否以错误的方式通过了我的测试步骤?

0 投票
2 回答
995 浏览

c# - EntityFramework.Extended Future 错误(JIT 编译器内部限制)

我正在使用 Code First EntityFramework ( version="6.1.0") 和 EntityFramework.Extended (version="6.1.0.96, the latest build of the moment from here。公开的
访问方式如下:DbContextDbSets

今天我决定尝试EntityFramework.Extended 库的未来查询,并且很快就结束了,不知道如何进行。

这是示例代码:

关于Future()文档,我应该只获得对该Future()方法提供的数据库的一个查询。查询应该在启动,u.ToList();但会发生这样的错误:

JIT 编译器遇到内部限制。

堆栈跟踪潜水告诉我:

在 EntityFramework.Future.FutureQueryBase 1.GetResult()

在 EntityFramework.Future.FutureQuery 1.GetEnumerator()

在 System.Collections.Generic.List 1..ctor(IEnumerable 1 集合)

在 System.Linq.Enumerable.ToList[TSource](IEnumerable 1 源)

在 c:\Users\...\App\Program.cs:line 25 中的 App.Program.Main(String[] args)

我真的不知道我错过了什么。我检查了我ConnectionStringMultipleResultSets设置为TRUE.
我已经用早期的构建版本对此进行了测试,EF.Exteneded但发生了同样的错误。

任何想法都会有很大帮助。

0 投票
2 回答
1426 浏览

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

当我调试以下代码System.TypeLoadException时,我在执行Delete().

我在 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'

我在扩展库的 github 上添加了一个问题。

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

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

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

0 投票
1 回答
1115 浏览

c# - DBSet.Where(...).Delete() -> “没有匹配元素”这是不正确的

我正在使用带有EF.Extended的 EF 6.1,我正在尝试执行以下操作:

allRevisionsDbSet<Revision>我当前的一个DbContext(此代码位于通用辅助方法中)。
当我执行此操作时,出现以下异常:

序列不包含匹配元素。

这是不正确的,因为存在匹配的修订版,并且Any也是正确的。
此外,如果我执行以下操作,它工作正常:

但这正是使用 EF.Extended 应该能够避免的方式。

我做错了什么还是这是 EF.Extended 中的错误?

PS:我知道这Any是毫无意义的 - 我补充说,在我第一次收到错误后,有一些修订要删除。也没有竞争条件,因为在我的开发机器上没有其他人在访问数据库。
Better to materialize the query then check if it has items and delete those you need to delete all in memory.=> 但这正是我想要避免的(以及 EF.Extened 的优点)。我实际上不在乎是否发生了变化——我希望它只是像DELETE from Revisions WHERE Item_Id = @Id;在数据库中那样执行查询。

更新:
我创建了一个小型演示项目来重现问题:这里
似乎与继承有关。如果我尝试用ContentRevision它做同样的事情,但MyRevision它继承自它,它不会。