我正在尝试在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中的模型之一。 一般我无法访问我的任何模型,总是抛出错误。这可能是什么问题?
答案 0 :(得分:2)
如果程序集版本正确(即程序集标识在更改类型时发生更改),则应按预期工作,并且将解析新版本。除此以外;您需要重新启动功能应用程序才能解决程序集。删除功能应用程序不是必需的。
因此,重新启动您的函数应该暂时完成这项工作,但您应该考虑对程序集进行版本控制以防止再次发生这种情况。