【发布时间】:2013-06-30 14:14:21
【问题描述】:
我正在为我的 ASP.NET MVC 4 Razor 项目使用 ADO.NET 实体模型进行数据绑定和其他数据操作。
我正在尝试在我的模型中将这样的数据绑定到我的Controller:
当我到达第 26 行时:
26. Sender = db.GetLoginByUserId(item.sender_id).FirstOrDefault(),
27. Receiver = db.GetLoginByUserId(item.recv_id).FirstOrDefault(),
我收到这样的错误:
{“已经有一个打开的 DataReader 与此 Connection 关联,必须先关闭。”}
真的,我不明白如何手动关闭它,因为ADO.NET Entity太自动化了,我没有为DataReader或连接定义任何打开关闭。
我认为,这可能是因为第 15 行:
15. var currentUserId = db.GetUserIdByLogin(Request.Cookies["user-name"].Value);
当 GC 收集垃圾时,Entity 模型确实会打开连接/DataReader 并仅在大括号 } 符号后将其删除。
看起来我只能在单个方法中进行一次调用,但是如果我想从实体模型中进行更多调用,该怎么做?
谢谢!
【问题讨论】:
标签: c# asp.net-mvc data-binding ado.net-entity-data-model datareader