我想通过WCF数据服务公开遗留的.net代码。但不在任何地方使用Entity Framework。基本上我目前每隔X小时从db填充一次我的所有模型,并将这些模型转储到缓存中。当前的Web服务从此缓存中提取所有信息。我现在必须将所有这些转换为WCF数据服务,主要是为了支持OData协议。
最简单,最快捷的方式是什么(同样,没有实体框架)
下面是我的模型目前的样子示例:
public class Country
{
public string CountryCode {get; set;}
public string CountryName {get; set;}
public List<State> ListOfStates {get; set;}
}
public class State
{
public string StateCode {get; set;}
public string StateName {get; set;}
}
提前致谢。
答案 0 :(得分:2)
这不是黑魔法 - 而是一点工作。
请参阅此WCF Data Services Advanced Topics文章,该文章介绍了如何使用,例如您的ORM亚音速。
基本上,涉及的步骤是:
IQueryable<T>
个集合 - 您可以通过包含所有这些集合的某种DataModel
或DataContext
类来实现此目的如果您希望能够插入和更新数据,还需要:
IUpdatable
界面,以启用更改跟踪和处理CUD操作答案 1 :(得分:2)
您需要使用reflection provider而不是实体框架提供程序 - 在WCF数据服务中公开的自定义上下文类。请注意,默认情况下,反射提供程序仅公开只读数据。如果您需要通过OData服务更新数据,则还必须在上下文类中实现IUpdateble接口。
答案 2 :(得分:1)
我实际上不想做广告,但你的问题与我们在这里工作的情况相同。我们接管了Jonathan Carter开发的原始工具包,用于将WCF DataServices映射到您想要的任何内容。
尝试查看http://wcfdstoolkit.codeplex.com/,看看这是否能解决您的问题。该文档可通过Jonathan的博客链接获取,该博客介绍如何设置&amp;使用工具包。但我建议下载9月发布分支,以确保您已经解决了所有错误修复。