【发布时间】:2012-02-29 15:30:03
【问题描述】:
我在通过 WCF 发送具有导航属性的实体框架生成的实体时遇到问题。我有一个Securities 用于存储财务数据的数据库和其中的两个表:
Stock : Id, Symbol, CompanyName, ExchangeNameOption: Id, StockId, OptionType, Strike
我为此数据库创建了一个实体框架模型。然后我创建了 WCF 服务,它将生成的 Stock 和 Option EF 实体暴露给客户端。
我生成的实体Stock 具有导航属性EntityCollection<Option> Options。
当试图从 WCF 服务返回 Stock 实体到客户端时,我得到一个 SerializationException:WCF 无法序列化 Options 导航属性,因为数据库连接已经关闭。
我可以在打开数据库连接时调用Options.Load()方法来填充Options属性,但是如果我不想为Stock实体加载完整的对象图该怎么办?
【问题讨论】:
-
实体不适用于您的服务层,即使它们是 Code-First POCO,EF 也会对其进行变异。为您的服务层创建单独的模型/DTO。
标签: wcf entity-framework serialization