在Azure函数中使用实体框架

时间:2019-01-18 15:58:38

标签: c# entity-framework azure

我正在尝试创建一个需要访问数据库的azure函数。我有一个.netstandard 2.0库,其中包含所有数据库内容(它具有Microsoft.EntityFrameworkCore.ToolsMicrosoft.EntityFrameworkCore.SqlServer Nuget包,并使用Scaffold-DbContext创建了所有相关的类)。我的azure函数(已触发队列)具有对该库的引用,并且具有Nuget包Microsoft.EntityFrameworkCore.SqlServerMicrosoft.EntityFrameworkCore。一切都建立了,但是当它运行并且队列触发它抱怨的功能时:

  

[1/18/2019 3:53:49 PM]发生ScriptHost错误

     

[1/18/2019 3:53:49 PM]执行函数MyFunction时发生异常。 MyProcessor:无法加载文件或程序集   'Microsoft.EntityFrameworkCore,版本= 2.2.1.0,文化=中性,   PublicKeyToken = adb9793829ddae60'。找不到或加载特定的   文件。 (来自HRESULT的异常:0x80131621)。 System.Private.CoreLib:   无法加载文件或程序集“ Microsoft.EntityFrameworkCore,   版本= 2.2.1.0,文化=中性,PublicKeyToken = adb9793829ddae60'。

在这里发生(因为我只是删除了using块,所以它运行良好,但显然没有任何用处):

[FunctionName("MyFunction")]
public static void Run([QueueTrigger("my-items", Connection = "queueConnection")]string myQueueItem, TraceWriter log)
{
    using (var ctx = new MyDotNetStandardLibary.Models.MyEFContext())
    {
        //...
    }
    log.Info($"C# Queue trigger function processed: {myQueueItem}");
}

bin文件夹中确实包含Microsoft.EntityFrameworkCore.dll,看起来它是正确的版本,那么为什么不加载它呢?我在JSON.net上也遇到了类似的问题,但最终甚至放弃使用它并解决了它。但是我需要EF。我缺少使Azure函数加载依赖项的功能?

0 个答案:

没有答案