【发布时间】:2010-07-04 19:56:08
【问题描述】:
嘿,任何人都可以确认以下方案是否可行:
- 我正在.NET 4.0 中开发一个三层应用程序:Winforms 客户端、aspx 服务器和 SQL 2008 数据库。
- 服务器通过 Entity Framework 4.0 与 SQL 2008 数据库通信,并通过 WCF 将 STE 形式的实体(在单独的程序集中)返回给客户端应用程序。
现在我想在 SQL 服务器上执行一个存储过程,它将返回一个自定义形状的数据格式(不是与实体的 1:1 映射)。我读到我可以使用复杂类型来保存将返回给我的数据。
现在的问题是:这种复杂类型是否可以通过 WCF 序列化,以便客户端也可以使用它?我想是的,但似乎无法在任何地方找到最终答案,我想在继续编码之前确定。
谢谢!
TJ
【问题讨论】:
-
您是只发送复杂类型,还是与正在发送的某种根实体相关的复杂类型?
-
复杂类型将是我模型中使用的实体的一些存储过程计算和数据转换(如不同类型的平均值等)的结果。所以是的,复杂类型显然与实体有关,但 IMO 使用 SP 的计算比使用 LINQ 或其他 .NET 函数更容易实现。而且对服务器的影响会很小。不推荐这种方法吗?
-
为了进一步澄清,我在其他 WCF 合同调用中将普通实体发送给客户端(例如在客户端上填充下拉列表等)。但是在我现在要实现的具体合约功能中,需要进行这些计算。我猜我有 3 个选项,要么将所有实体发送到客户端并让它进行处理,要么在 aspx 服务器上进行处理,或者通过 SP 进行处理,然后使用服务器将结果传递给客户端(现在是我打算走的路,因此我的问题)。
标签: wcf entity-framework-4 self-tracking-entities complextype