【发布时间】:2013-11-25 02:10:36
【问题描述】:
我已经阅读了几个关于实体框架生成对象的 WCF 序列化的问题/文章,但我发现的所有解决方案都涉及打开预加载,这正是我试图不做的事情。
我基本上遇到了与此处提到的 The ObjectContext instance has been disposed - Winforms Entity Framework 相同的错误,不同之处在于我正在使用 Silverlight 应用程序中的 WCF 服务。
我有一个表 User_Notifications,它有一个表 User_Info 的外键。 (如果我没有正确使用术语,单个User_Info 可以指向多个User_Notifications)。我正在使用 Entity Framework 4,它为这两个创建了一个类。我有一个返回的 WCF 调用:
return DBEntity.User_Notifications.Where(w => w.UserGUID == UserGuid && w.IsDismissed == false).ToArray();
这为我提供了我需要的所有 User_Notifications,但我在客户端收到一个 ObjectContext Instance has been disposed 错误,这看起来像是尝试加载关联的 User_Info 类。我不想要User_Info 数据,我希望它保持为空或其他什么,我不需要它来显示通知。
那么,如何在不需要传递关联对象的情况下传递我的实体对象?
我的老板说这只是“我们在数据库中不需要外键”的另一个原因,我真的不想走这条路。
【问题讨论】:
-
听起来你的老板应该坚持与编程无关的事情。
-
@Matthew 我的老板是框架开发人员,过去 10 年一直如此。几个月前,我向他展示了一个很酷的新东西,叫做 .net 字典。
-
@Matthew 但是默认情况下不会同时加载 User_Notifications 和 User_Info 吗?
-
不,它只会加载
User_Notifications,我要发布答案,所以请抓住你的帽子。
标签: c# wcf entity-framework