尝试将 DbSet<TEntity>.Where() 与 EF7 和 ASP.NET5 一起使用
Attempting to use DbSet<TEntity>.Where() with EF7 and ASP.NET5
我已经使用 ASP.NET 5 MVC6 项目和一些 class 库创建了一个解决方案。我正在使用 Visual Studio 2015,我的目标是 "dnxcore50" 和 "net451"。
在 class 库中,我正在使用 EF7 编写存储库代码。在 class 中,我尝试在 DbSet<> 上使用一些方法。即“.Where(...)”、“.Single(...)”和“.First(...)”。这些在旧版本的 .NET 上可用。
我收到以下 2 个错误:
.NET Framework 4.5.1 error CS0012: The type 'IEnumerable<>' is defined
in an assembly that is not referenced. You must add a reference to
assembly 'System.Runtime, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a'.
.NET Framework 4.5.1 error CS0012: The type 'Func<,>' is defined in an
assembly that is not referenced. You must add a reference to assembly
'System.Runtime, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a'.
似乎在 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 版本。
有什么想法吗?
好的,我想我终于弄清楚了原因。如果您创建 class 库,则 project.json 文件具有:
"net451": { },
在 "frameworks" 部分。如果我将其更改为:
"dnx451": { },
然后就可以了。我不是 100% 确定这是否会影响其他任何事情。但我现在就用它。
对于其他答案,我们仍然可以通过添加 "System.Runtime"
使用 net451
"net451": {
"frameworkAssemblies": {
"System.Runtime": ""
}
}
我已经使用 ASP.NET 5 MVC6 项目和一些 class 库创建了一个解决方案。我正在使用 Visual Studio 2015,我的目标是 "dnxcore50" 和 "net451"。
在 class 库中,我正在使用 EF7 编写存储库代码。在 class 中,我尝试在 DbSet<> 上使用一些方法。即“.Where(...)”、“.Single(...)”和“.First(...)”。这些在旧版本的 .NET 上可用。
我收到以下 2 个错误:
.NET Framework 4.5.1 error CS0012: The type 'IEnumerable<>' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
.NET Framework 4.5.1 error CS0012: The type 'Func<,>' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
似乎在 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 版本。
有什么想法吗?
好的,我想我终于弄清楚了原因。如果您创建 class 库,则 project.json 文件具有:
"net451": { },
在 "frameworks" 部分。如果我将其更改为:
"dnx451": { },
然后就可以了。我不是 100% 确定这是否会影响其他任何事情。但我现在就用它。
对于其他答案,我们仍然可以通过添加 "System.Runtime"
使用 net451"net451": {
"frameworkAssemblies": {
"System.Runtime": ""
}
}