【发布时间】:2011-03-29 19:58:12
【问题描述】:
我对 WCF 不太了解...
我想做一个干净的工作,使用 DataContracts 在客户端为实体提供服务。想象两个DataContract“系统”和“建筑”:“系统”可能有很多“建筑”,“建筑”可能有很多“系统”。所以,我们之间是多对多的关系。
在服务合同模型中,“系统”有一个“建筑物”属性,它是一个集合。 “建筑”也有“系统”的集合。
WCF 使用 DataSets 进行基础数据访问(使用 CRUD 的存储过程),并且我在 SYSTEM 和 BUILDING 之间有一个表来表示这种关系。
那么,我怎样才能干净利落地实现这个场景呢?我希望客户能够在“系统”中获得“建筑物”的简单表示,例如,我可以使用:
system = GetSystem(id);
foreach (Building building in system.Buildings) {
// do whatever with each buildings...
}
谢谢!
【问题讨论】:
-
问题是什么 - 看起来您有一组可行的数据合同。哪个部分不能与你所拥有的一起工作?
-
好吧,我不知道! :P 我想 DataSet 代码必须将行数据分配给属性集合(例如:系统中的建筑物)。为此,我想我需要一个适当的存储过程“GetSystems”来获取与之关联的建筑物的记录......但实际上,我不知道该去哪里。
-
在同一个句子中使用 WCF 和 DataSet 已经让我感到恐惧了; DataSet 不是 WCF 代码的良好基础...
-
同意!我的第一个想法是使用 WCF 的数据集和存储过程?是否可以选择迁移到 EntityFramework 或 NHibernate,或者该技术已经确定?
-
是的,我同意你们俩的观点!我更愿意使用 EF,我旁边有 Julia Lerman 的书,但我正在修改一个现有项目,它是这样设计的……除了哲学考虑之外,有什么想法吗? :)
标签: c# wcf collections datacontract