我是.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将获取包并按预期安装它。这里没问题。无论如何,我想使用更结构化的解决方案,包括:
我的核心模型位于面向.NET framework 4.6,ASP.NET Core 5.0,Windows Universal 10.0的“老式”PCL库中。从本质上讲,我在这里保留了我的实体POCO类和代表我的数据存储库的接口。
我的基于EF的存储库实现,使用上述模型,在“现代”PCL库中。
vNext WebAPI项目(一个很好的起点是http://www.asp.net/vnext/overview/aspnet-vnext/create-a-web-api-with-mvc-6)应该同时使用上面列出的项目,注入基于EF的实现定义的接口核心项目。
因此,我在项目(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依赖项,则不会出现此类错误,但这种依赖关系的定义方式相同。谁能解释一下这里到底发生了什么?