无法在Azure函数中加载实体框架核心

时间:2016-12-21 07:12:28

标签: nuget entity-framework-core azure-functions

我正在尝试将Entity Framework Core与C#Azure功能一起使用,而且我在使用库时遇到了大量错误。从默认的HTTP触发器模板开始,我创建了一个包含

project.json文件
{
  "frameworks": {
    "net46":{
      "dependencies": {
        "Microsoft.EntityFrameworkCore.SqlServer": "1.1.0"
      }
    }
   }
}

当包恢复完成时,编译器无法再在HttpRequestMessageExtensions中找到扩展方法:

  

016-12-21T06:59:24.728(9,19):错误CS1929:'HttpRequestMessage'确实   不包含'GetQueryNameValuePairs'的定义和最佳定义   扩展方法重载   'HttpRequestMessageExtensions.GetQueryNameValuePairs(HttpRequestMessage)'   需要一个'HttpRequestMessage'类型的接收器

(和其他3个类似的错误)。

我真的不需要使用这些扩展方法,如果我删除所有调用它们的代码,我会收到有关System.Net.Http版本的错误:

  

在程序集'System.Net.Http的运行时解析期间出现异常,   Version = 4.1.1.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a':   'System.BadImageFormatException:无法加载引用程序集   执行。

     

在System.Reflection.RuntimeAssembly.nLoadFile(String path,   证据证据)

     

在System.Reflection.Assembly.LoadFile(String path)

     

在   Microsoft.Azure.WebJobs.Script.Description.FunctionMetadataResolver.ResolveAssembly(字符串   的AssemblyName)

     

在   Microsoft.Azure.WebJobs.Script.Description.FunctionAssemblyLoadContext.ResolveAssembly(字符串   名)

     

在   Microsoft.Azure.WebJobs.Script.Description.FunctionAssemblyLoader.ResolveAssembly(对象   sender,ResolveEventArgs args)'

     

2016-12-21T07:00:00.522无法找到程序集'System.Net.Http,   Version = 4.1.1.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'。   你错过了一个私人程序集文件吗?

当NuGet添加EntityFrameworkCore包时,它会安装System.Net.Http版本4.3.0,而Azure Functions似乎正在寻找硬编码版本4.1.1。

我看到有关在Azure Functions中使用EF6的问题,但我没有看到任何关于EF Core的内容。

1 个答案:

答案 0 :(得分:0)

一个解决方案正在从Azure Function v2核心更改为Azure Function v1框架。