無法在Azure功能中加載實體框架核心

azure-functions entity-framework-core nuget

我正在嘗試使用帶有C#Azure功能的Entity Framework Core,而且我在使用庫時遇到了大量錯誤。從默認的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,Evidence evidence)

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

在Microsoft.Azure.WebJobs.Script.Description.FunctionMetadataResolver.ResolveAssembly(String assemblyName)

在Microsoft.Azure.WebJobs.Script.Description.FunctionAssemblyLoadContext.ResolveAssembly(String name)

在Microsoft.Azure.WebJobs.Script.Description.FunctionAssemblyLoader.ResolveAssembly(Object 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的任何信息。

熱門答案

一個解決方案是從Azure Function v2核心更改為Azure Function v1框架。



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow