在Azure函数中找不到EF的Getter方法

时间:2017-07-24 11:35:41

标签: c# entity-framework azure exception azure-functions

我正在尝试在Azure功能中使用实体框架。我在本地创建了我的模型并创建了它的DLL - 我尝试在控制台项目中使用它,它没有问题。

我想在Azure功能中做同样的事情,所以我将我的DLL上传到函数的bin文件夹,并在代码中添加了一个引用:

#r ".\bin\IoTDataModel.dll" 

我还在功能自身中添加了EntityFramework并对其进行了引用:

using System.Data.Entity;
using System.Data.Entity.SqlServer;  
using System.Data.Entity.ModelConfiguration.Conventions;

我写了一些代码,它使用了我的DLL中的模型,编译顺利。运行时出现问题。 示例代码:

using (var context = new IoTDataBaseContext())
{
    var dev = context.Device.FirstOrDefault();
}

抛出此错误:

  

mscorlib:调用目标抛出了异常。 f-EventHubMessageHandler__741454837:找不到方法:'System.Data.Entity.DbSet`1 IoTDataModel.IoTDataBaseContext.get_Device()'

“Device”是我在EntityFramework中的模型之一。 一般我无法访问我的任何模型,总是抛出错误。这可能是什么问题?

1 个答案:

答案 0 :(得分:2)

来自related GitHub issue

  

如果程序集版本正确(即程序集标识在更改类型时发生更改),则应按预期工作,并且将解析新版本。除此以外;您需要重新启动功能应用程序才能解决程序集。删除功能应用程序不是必需的。

因此,重新启动您的函数应该暂时完成这项工作,但您应该考虑对程序集进行版本控制以防止再次发生这种情况。