mr *_*ose 3 wcf serialization entity-framework
在通过WCF发送具有导航属性的Entity Framework生成的实体时遇到问题.我有一个Securities用于存储财务数据的数据库和其中的两个表:
Stock : Id, Symbol, CompanyName, ExchangeName
Option: Id, StockId, OptionType, Strike
我为这个数据库创建了一个Entity Framework模型.然后我创建了WCF服务,它将生成的Stock和OptionEF实体公开给客户端.
我生成的实体Stock具有导航属性EntityCollection<Option> Options.当尝试将Stock实体从WCF服务返回到客户端时,我得到SerializationException:WCF无法序列化Options导航属性,因为数据库连接已经关闭.
我可以Options.Load()在打开数据库连接时调用方法来填充Options属性,但如果我不想为Stock实体加载完整的对象图,我该怎么办?
cad*_*ll0 13
我和这个人争吵了一段时间.
首先,我把懒人装上了.但是我的对象图中的循环仍然存在问题.
然后,我[DataContract(IsReference = true)]在所有实体上添加了标签.这很有效,但我仍然对非规范化数据库有很多性能问题.最后,我分解并制作了dtos,我使用AutoMapper来填充它们.
我的一个同事告诉我从一开始就这样做,我应该听听他的意见.帮自己一个忙,不要犯同样的错误.
编辑
我忘了提到我有问题反序列化具有类型属性的实体ICollection<T>.这些将反序列化为数组.不知怎么T[]实现ICollection<T>,但Add并Remove会抛出异常.这是使用DTO的另一个原因.
| 归档时间: |
|
| 查看次数: |
3724 次 |
| 最近记录: |