【发布时间】:2011-04-06 11:33:39
【问题描述】:
我在这方面遇到了很多问题,即使用一个更简单的例子也无法解决。
我有一个 WCF 服务,它返回一个对象列表(来自我的实体模型)。
该模型只有 2 个表: 人员,带有 id、name 和 office_id(外键) 和办公室,有身份证和地址
我正在做一个非常简单的 linq 查询,它返回这些人中的第一个。这可以正常工作,即使“ToList()”方法也可以正常工作。
问题是,当我尝试通过服务返回它时,它会崩溃并显示“在 mscorlib.dll 中发生类型为 'System.StackOverflowException' 的未处理异常”
我认为它在尝试序列化 Person 对象时与导航属性有关。这些导航属性出现在 Person 和 Office 模型中,Person 表有一个“Office”导航属性,但 Office 表也有一个“Person”导航属性!!
我认为这些导航属性对于其他场景可能很有用,但我无法找到一种方法来说不加载这些内容,或者至少不序列化并通过服务返回它!!
这是 linq 查询(有效,列表中确实有一个人):
var query = (from chosen in entities.person
select chosen).First<person>();
return query.ToList<person>();
有人见过这样的吗?我之前有过几个 WCF-Linq 项目,但从来没有遇到过类似的问题。
提前致谢。
【问题讨论】:
标签: c# wcf linq entity-framework