我正在考虑使用Orchard CMS的项目。
但是,我们希望将Web服务用作某些内容项的数据源。我想我们必须更改存储库实现才能使这成为可能,但我不确定。
所以我的问题是:我的猜测是正确的,还是更复杂?那怎么可以呢?
谢谢!
更新 我看到Orchard的IRepository接口需要实现LINQ提供程序。在这种情况下,这是不可能的,因为Web服务是通过SOAP提供的。
我会更好地进一步描述这个场景:
我们希望建立的网站必须使用网络服务来获取有关组织成员和单位的信息。我们希望在网站上显示某些组织单位的成员。我们还想创建我们自己的内容类型“Event”,它应该与“Member”(来自WS)有M:N关系(Attendees)。
答案 0 :(得分:16)
如果您不想完全将零件存储指向其他地方,则无需实施 IRepository 。我目前正在我的一个基于Orchard的项目中使用WCF服务,因此您的方案类似。
你可以这样做:
OnLoaded<MyPart>((ctx, part) => {
part.MyProperty = myService.GetMyProperty(part.SomeIdToLookup);
});
当然,您可以使用其他处理程序事件(如OnInitialized,OnCreated,OnPublished等)。您可以阅读有关内容处理程序here的更多信息。
我还建议从Codeplex获取dev startup module以便快速开发。
答案 1 :(得分:3)
实际上,您 不需要使用存储库甚至记录。根据您要执行的操作,从处理程序触发提取逻辑可能会起作用。