breeze:将web api实体与第三方wcf服务相结合
我使用Web API返回Contrat EF实体和元数据 合同实体具有PersonId属性,该属性持有Person实体的外键。 这就是事情变得复杂的地方 为了获取Person实体,我需要调用WCF服务。此服务不使用实体框架检索实体。事实上,Person实体存储在Oracle数据库中 然后在客户端,我需要将该Person实体分配给Contract实体。我想我需要扩展契约模型并添加Person类型的属性 我已经通过了埃德蒙兹的样本,这似乎接近我要做的 我不打算直接从客户端调用WCF服务。相反,我将在我的WebAPI服务中调用一个GetPerson方法,这将反过来调用WCF服务 因此,我的问题是:既然我已经访问了WebAPI服务,我应该尝试返回IQueryable和元数据(听起来很难),还是简单地返回JSON数据并按照Edmunds示例的方式进行breeze:将web api实体与第三方wcf服务相结合,breeze,Breeze,我使用Web API返回Contrat EF实体和元数据 合同实体具有PersonId属性,该属性持有Person实体的外键。 这就是事情变得复杂的地方 为了获取Person实体,我需要调用WCF服务。此服务不使用实体框架检索实体。事实上,Person实体存储在Oracle数据库中 然后在客户端,我需要将该Person实体分配给Contract实体。我想我需要扩展契约模型并添加Person类型的属性 我已经通过了埃德蒙兹的样本,这似乎接近我要做的 我不打算直接从客户端调用WCF服务。相反,我将在
哪个更容易实现 Edmunds示例重点关注对您无法控制的HTTP服务的客户端查询 在这种情况下,听起来您更愿意让您控制的服务器上发生所有事情。。。包括WCF服务的任何附带行程。那也是我的偏好。。。虽然我不知道做出判断所需的细节 如果我在获取单个
合同
时只需要相关的人员
,我想我应该让我的Web API操作方法返回一个完全由服务器组成的合同
图(包括我通过WCF服务在服务器上获取的人员
)
但您可能会想到一个客户,他在一次呼叫中需要许多合同
实体,每个实体都扩展了相关的人员
实体。当您询问在方法上放置IQueryable
时,这就是您的意思吗
如果是这样的话,我仍然会考虑在服务器上完整地编写这些文件,以获得相关的<代码>人>代码>对象,然后将生成的集合作为一个<代码> IQueEngy/Cuth>,以便客户端可以进行过滤。啊。我怀疑
IQueryable
是不明智的IEnumerable
可能更好。您仍然可以将一些筛选值传递给Web API方法(请参见EntityQuery.withParameters
)。感谢Ward的回答。我认为你是对的,在服务器端做所有事情可能会更容易。那我有个问题。假设我创建了一个自定义EF datacontext。当我调用Contracts()方法来查询Contract表时,我应该调用我的WCF服务来填充Contract的Person属性。Metadata()方法是否将返回有关人员类型的元数据?如果是这样,那么对我来说一切都应该很好。或者我还需要在客户端定义人员类型吗?