设置EntityFramework 6和WCF数据服务5.6

时间:2014-05-16 21:54:12

标签: c# .net entity-framework wcf-data-services

我正在尝试为Entityframwork 6和WCF Data Services 5.6设置项目。我经历了this page

我安装了NuGet包:

  

Install-Package Microsoft.OData.EntityFrameworkProvider -Pre

之后,我尝试使用向导ADO.Net实体数据模型。 它不允许我进一步前进。错误是这样的

  

您的项目引用了最新版本的E F;但是,无法找到与此版本兼容的EF数据库提供程序用于您的数据连接。退出此向导,安装ta兼容的提供程序,然后在执行此操作之前重建项目。   和一个链接:   http://msdn.microsoft.com/en-us/data/jj730568

我的数据库是Oracle 11g,我使用的是DevArt,其版本是Oracle pro 8.0.146.0

我认为这是DotConnect的一些问题,我与供应商核对过他们给了我this link

我也跟着这个。但没有成功。

当我尝试添加DevArt Data Model * edml时,它也给了我Ef 6。 因此,当创建此edml并尝试WCF数据服务时,请给我异常消息:

  

“Models.USER”类型的属性“EntityState”不是有效属性。确保属性的类型是公共类型和受支持的基元类型或具有有效键或复杂类型的实体类型。请参阅服务器日志以获取更多详异常堆栈跟踪是:在System.Data.Services.Providers.ReflectionServiceProvider.BuildTypeProperties

如何将它们组合在一起?

2 个答案:

答案 0 :(得分:3)

Entityframework 6,WCF数据服务5.6,DevArt oracle连接器

现在让我回答我自己的问题。

  1. 实体框架6& WCF Data Serice从第1天起就没有工作。为什么EF 6& S的复杂依赖性。数据服务5.6。
  2. DevArt实体向导使用EntityObject创建实体数据模型,但我不知道为什么不能使用DataService。
  3. 所以我按照下面提到的链接,如最后的单词 http://blogs.msdn.com/b/odatateam/archive/2013/10/02/using-wcf-data-services-5-6-0-with-entity-framework-6.aspx?Redirected=true

    1. 为DataService 5.6创建了一个新的空白MVC项目
    2. 使用NuGet包管理器安装EF 6。
    3. 安装了Install-Package Microsoft.OData.EntityFrameworkProvider -Version 1.0.0-alpha2
    4. 使用DevArt EntityWizad为EF 6创建DataModel选择DbContext模板(不要为什么它仍然使用Both ObjectContext,DbContext
    5. 编写代码
    6. 手动删除ObjectContext自动生成的代码。
    7. 添加WCF数据服务5.6对于向导
    8. 将DataService更改为EntityFrameworkDataService
    9. 注册实体提供商 http://blog.devart.com/entity-framework-6-support-for-oracle-mysql-postgresql-sqlite-and-salesforce.html

      相信我复杂的dll依赖是跨越的障碍。 有关更多信息,请阅读以下主题。 (Oopps ..我在这里没有声望所以我不能发布更多链接。抱歉)

答案 1 :(得分:0)

  

..."您的项目引用了最新版本的Entity Framework;但是,找不到与此版本兼容的Entity Framework数据库提供程序用于数据连接。退出此向导,安装兼容的驱动程序,然后在执行此操作之前重建项目" ...

使用EDM Designer时,您应该在向项目添加新的ADO.NET实体数据模型之前,将EF-provider的注册添加到* .config。 dotConnect for Oracle的示例可在此处获取:http://blog.devart.com/entity-framework-6-support-for-oracle-mysql-postgresql-sqlite-and-salesforce.html

Entity Developer会自动将此EF-provider注册添加到* .config。我们建议您使用Entity Developer(Devart Entity Model,* .edml)而不是EDM Designer(ADO.NET实体数据模型,* .edmx),因为它已针对使用Oracle进行了调整,并具有高级功能:{{3} }。

  

...异常消息是'属性' EntityState'在类型' Models.USER'不是有效的财产。确保属性的类型是公共类型和受支持的基元类型或具有有效键或复杂类型的实体类型。' ...

请发送给我们(devart * com的支持)一个小型测试项目,可以重现错误,以便我们能够更详细地调查它并为您找到解决方案。