Entity framework 4 不使用实体框架的WCF数据服务

Entity framework 4 不使用实体框架的WCF数据服务,entity-framework-4,entity-framework-4.1,wcf-data-services,odata,Entity Framework 4,Entity Framework 4.1,Wcf Data Services,Odata,我想通过WCF数据服务公开遗留的.net代码。但在任何地方都不使用实体框架。基本上,我现在每X小时从db中填充一次所有模型,并将这些模型转储到缓存中。当前web服务从该缓存中提取所有信息。我现在必须将所有这些转换为WCF数据服务,主要是为了支持OData协议 最简单、最快捷的解决方法是什么(同样,没有实体框架) 下面是我的模型当前的外观示例: public class Country { public string CountryCode {get; set;} public s

我想通过WCF数据服务公开遗留的.net代码。但在任何地方都不使用实体框架。基本上,我现在每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;}
}
公共类国家
{
公共字符串CountryCode{get;set;}
公共字符串CountryName{get;set;}
公共列表列表状态{get;set;}
}
公共阶级国家
{
公共字符串状态码{get;set;}
公共字符串StateName{get;set;}
}

提前谢谢。

这不是黑魔法,而是一点工作

请参阅这篇文章,它展示了如何在ORM中使用亚音速

基本上,所涉及的步骤包括:

  • 您需要为所有类公开
    IQueryable
    集合-您可以通过使用某种
    DataModel
    DataContext
    类来实现这一点,该类包含所有这些集合
如果希望能够插入和更新数据,还需要:

  • 在“数据上下文”上实现
    IUpdatable
    接口,以实现CUD操作的更改跟踪和处理

您需要使用而不是实体框架提供程序-WCF数据服务中公开的自定义上下文类。请注意,反射提供程序在默认情况下只公开只读数据。如果您需要通过OData服务更新数据,您还必须在上下文类上实现接口。

实际上我不想宣传自己,但您的问题与我们在工作中遇到的情况相同。我们已经接管了Jonathan Carter开发的原始工具包,该工具包用于将WCF数据服务映射到您想要的任何对象


试着看看,看看这是否解决了你的问题。可以通过Jonathan关于如何设置和使用工具包的博客链接获得该文档。但我建议您下载9月份发布的分支,以确保您有我已经解决的所有错误修复。

这很好。答案是相关的,你清楚地透露了你的隶属关系。谢谢,伙计。目前我已选择了反射提供者。