尝试在EF7和ASP.NET5中使用DbSet <tentity> .Where()

时间:2015-12-21 13:57:35

标签: asp.net-mvc entity-framework visual-studio-2015 coreclr

我已经使用ASP.NET 5 MVC6项目和一些类库创建了一个解决方案。我正在使用Visual Studio 2015,我的目标是&#34; dnxcore50&#34;和&#34; net451&#34;。

在类库中,我使用EF7编写存储库代码。在一个类中,我试图在DbSet&lt;&gt;上使用一些方法。即&#34;。所在(......)&#34;,&#34;。单(...)&#34;和#34;。第一(...)&#34;。这些可以在旧版本的.NET上获得。

我收到以下2个错误:

  

.NET Framework 4.5.1错误CS0012:类型&#39; IEnumerable&lt;&gt;&#39;被定义为   在未引用的程序集中。您必须添加引用   assembly&#39; System.Runtime,Version = 4.0.0.0,Culture = neutral,   公钥= b03f5f7f11d50a3a&#39;

     

.NET Framework 4.5.1错误CS0012:类型&#39; Func&lt;,&gt;&#39;定义在一个   未引用的程序集。您必须添加对程序集的引用   &#39; System.Runtime,Version = 4.0.0.0,Culture = neutral,   公钥= b03f5f7f11d50a3a&#39;

似乎在DNXCORE50格式中没有问题,但不是.NET的完整4.5.1版本。

我在project.json文件中有这个:

"frameworks": {
    "net451": {
      "dependencies": {
        "System.Runtime": "4.0.21-beta-23516"
      }
    },
    "dnxcore50": {
      "dependencies": {
        "System.Runtime": "4.0.21-beta-23516"
        ......
      }
    }
  }

我的目标是1.0.0-rc1-final DNX SDK版本。

有什么想法吗?

2 个答案:

答案 0 :(得分:6)

好吧,我终于认为我设法找出原因。如果创建类库,则project.json文件具有:

 "net451": { },

在“框架”部分。如果我将其更改为:

"dnx451": { },

然后它起作用。我不是百分之百确定这是否会对其他任何事情产生影响。但我现在会用它。

答案 1 :(得分:1)

要获得额外答案,我们仍然可以通过添加“System.Runtime”

来使用net451

"net451": {
      "frameworkAssemblies": {
        "System.Runtime": ""
      }
    }