读书人

用了using后Entity framework(EF)的

发布时间: 2014-04-23 16:14:51 作者: rapoo

用了using后,Entity framework(EF)的 表.ToList()方法出错?
using (CodeFirst db = new CodeFirst())
{
dataGridView1.DataSource = db.User.ToList();
dataGridView2.DataSource = db.UserExt.ToList();
}


---------------------------
“DataGridView 默认错误”对话框
---------------------------
DataGridView 中发生以下异常:



System.Reflection.TargetInvocationException: 对象“System.Data.Entity.DynamicProxies.User_CC3393A653B8340ECECEF27D8F5ECC520AE83804D1B30A4BE45010FEB1DDF22F”上的属性访问器“UserBook”发生以下异常: “此 ObjectContext 实例已释放,不可再用于需要连接的操作。” ---> System.ObjectDisposedException: 此 ObjectContext 实例已释放,不可再用于需要连接的操作。

在 System.Data.Objects.ObjectContext.EnsureConnection()

在 System.Data.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption)

在 System.Data.Objects.ObjectQuery`1.Execute(MergeOption mergeOption)

在 System.Data.Objects.DataClasses.EntityCollection`1.Load(List`1 collection, MergeOption mergeOption)

在 System.Data.Objects.DataClasses.EntityCollection`1.Load(MergeOption mergeOption)

在 System.Data.Objects.DataClasses.RelatedEnd.Load()

在 System.Data.Objects.DataClasses.RelatedEnd.DeferredLoad()

在 System.Data.Objects.Internal.LazyLoadBehavior.LoadProperty[TItem](TItem propertyValue, String relationshipName, String targetRoleName, Boolean mustBeNull, Object wrapperObject)

在 System.Data.Objects.Internal.LazyLoadBehavior.<>c__DisplayClass7`2.<GetInterceptorDelegate>b__1(TProxy proxy, TItem item)

在 System.Data.Entity.DynamicProxies.User_CC3393A653B8340ECECEF27D8F5ECC520AE83804D1B30A4BE45010FEB1DDF22F.get_UserBook()

--- 内部异常堆栈跟踪的结尾 ---

在 System.ComponentModel.ReflectPropertyDescriptor.GetValue(Object component)

在 System.Windows.Forms.DataGridView.DataGridViewDataConnection.GetValue(Int32 boundColumnIndex, Int32 columnIndex, Int32 rowIndex)



要替换此默认对话框,请处理 DataError 事件。
---------------------------
确定
---------------------------

[解决办法]
1、使用Include方法,加载全部属性
2、禁用代理类,不过这样不能使用导航属性
[解决办法]
去掉using

读书人网 >.NET Framework

热点推荐