在 RIA-Silverlight 3 程序开发架构-1 中,复合实体 的相关程序 开发过于复杂。

加入导航属性的应用,架构更新如下:

UI—BusinessContex(Entity)—DomainContext(Entity)—DomainService—ObjectContext—DataBase

以下针对小型系统,对于比较多的系统,EDM ObjectContext和DomainService 该如何设计,我还没有很好的解法

1.DataBase:设计好表间的主外键关系,可参考 Northwind 中的 订单、订单明细、产品、客户 表的设计

2.ObjectContext:可以一个 数据库 对应 一个 EDM ObjectContext

3.DomainService: 一个EDM ObjectContext 对应 一个 DomainService,实做时可用 分布类 partial 实现

说明:ObjectContext 和 DomainService 这样设计的原因是,Silverlight端若要应用导航属性,需要相关Entity位于一个DomainService,然而有些Entity会贯穿整个系统,或者需求不明确不确定Entity该放在哪个DomainServie中。 目前还没有想好如何设计ObjectContext 和 DomainService,这只是偷懒的方式

4.BusinessContex(Entity)—DomainContext(Entity):按照以上的设计,DomainContext可能会有很多Entity及相关操作,为了方便UI使用, BusinessContex 会像是 DomainContext 的子集,用来操作特定业务的Entity,主要会是 Load 和 Submit 的封装

5.UI:与BusinessContex的实体 或 复合实体 沟通,UI不能 出现 EntityQurey

posted on 2010-01-20 21:47  湛然常寂  阅读(509)  评论(0编辑  收藏  举报