我在C#中使用带有MySQL后端的实体框架。这是代码的问题部分:
using (var entities = new myEntities()) {
Parties = new ObservableCollection<t_party>(
entities.SalesParties
.Include("SalesReps")
.Include("InventoryReservation")
.Include("InventoryReservation.InventoryAssignment")
.Include("InventoryReservation.InventoryAssignment.Inventory")
.ToList()
);
}
当代码运行时,我收到一个错误:“当数据读取器关闭时调用'Read'不是有效的操作。”有趣的是,如果我删除.Include(“SalesReps”)它就可以了。 SalesReps和InventoryReservation都是SalesParty端的0..1多重性和另一端的*。
我正在使用Entity Framework 4.1和“MySQL Connector Net 6.3.7”库。我最初尝试过6.4.x,但在它和实体框架之间遇到了一些其他问题,不得不回滚。
真正令人费解的是,我最近换了笔记本电脑,它在旧款上运行良好!旧版本在32位处理器上运行Windows 7,新版本是64位。不确定这是否会通过使用不同的库来影响事物,但它是我能想到的唯一其他变量。
答案 0 :(得分:0)
我也遇到了同样的问题,发现一旦执行了使用块,实体变量就会被处理掉。因此,如果您尝试在块之外再次使用它,您将收到此错误。要解决此问题,请创建实体变量,而不使用任何使用块,然后尝试运行代码。