无法在现代PCL库中编译EF6(VS 2015 RTM)

时间:2015-08-11 15:34:36

标签: asp.net-mvc entity-framework asp.net-web-api2

我是.NET核心(http://docs.asp.net/en/latest/conceptual-overview/dotnetcore.html)和VS2015(RTM)的新手,所以我可能错过了一些明显的东西,但我无法通过Google搜索找到明确的建议,而我正在努力学习。< / p>

我想使用Entity Framework 6创建一个vNext WebAPI应用程序。如果我将此包添加到project.json文件(依赖项下的"EntityFramework": "6.1.3"),VS将获取包并按预期安装它。这里没问题。无论如何,我想使用更结构化的解决方案,包括:

  1. 我的核心模型位于面向.NET framework 4.6,ASP.NET Core 5.0,Windows Universal 10.0的“老式”PCL库中。从本质上讲,我在这里保留了我的实体POCO类和代表我的数据存储库的接口。

  2. 我的基于EF的存储库实现,使用上述模型,在“现代”PCL库中。

  3. vNext WebAPI项目(一个很好的起点是http://www.asp.net/vnext/overview/aspnet-vnext/create-a-web-api-with-mvc-6)应该同时使用上面列出的项目,注入基于EF的实现定义的接口核心项目。

  4. 因此,我在项目(2)中添加了EF作为依赖项,因此它的project.json看起来像这样:

    ...
      "dependencies": {
        "System.Collections": "4.0.10-beta-23019",
        "System.Linq": "4.0.0-beta-23019",
        "System.Threading": "4.0.10-beta-23019",
        "System.Runtime": "4.0.10-beta-23019",
        "Microsoft.CSharp": "4.0.0-beta-23019",
        "Bredit.Core": "1.0.0-*",
        "EntityFramework": "6.1.3"
      },
    
      "frameworks": {
        "dotnet": { }
      }
    ...
    

    (对于我不知道的dotnet绰号,我在http://blog.nuget.org/20150729/Introducing-nuget-uwp.html找到了一些信息。

    现在,如果我尝试添加从DbContext派生的类,我会得到大量的编译错误,看起来不包括EF,例如CS0246 The type or namespace name 'DbContext' could not be found (are you missing a using directive or an assembly reference?)命名空间的System.Data等。

    如果我直接在WebAPI项目中包含相同的EF依赖项,则不会出现此类错误,但这种依赖关系的定义方式相同。谁能解释一下这里到底发生了什么?

0 个答案:

没有答案