【发布时间】:2017-11-21 05:53:09
【问题描述】:
在 Visual Studio 中,我有一个用 C# 编写的 Azure 函数,它应该使用实体框架 (EF6) 从 Azure SQL 数据库中读取。
我无法让实体框架工作。当我发布 Azure 函数时出现错误:
上下文在 Code First 模式下使用,代码是从 EDMX 文件生成的,用于 Database First 或 Model First 开发。这将无法正常工作。要解决此问题,请不要删除引发此异常的代码行。如果您希望使用 Database First 或 Model First,请确保 Entity Framework 连接字符串包含在启动项目的 app.config 或 web.config 中。如果要创建自己的 DbConnection,请确保它是 EntityConnection 而不是其他类型的 DbConnection,并将其传递给采用 DbConnection 的基本 DbContext 构造函数之一。要了解有关 Code First、Database First 和 Model First 的更多信息,请参阅此处的实体框架文档:http://go.microsoft.com/fwlink/?LinkId=394715
这些都不起作用。
我还尝试按照许多网站的建议在 Azure 中添加一个 project.json 文件,但这并没有改变任何东西。
这里是 C#。
public static class Function1
{
[FunctionName("Function1")]
public static void Run([TimerTrigger("*/100 * * * * *")]TimerInfo myTimer, TraceWriter log)
{
try {
using (var qc = new quotecandyEntities()) {
if (qc.Users.Any()) {
log.Info($"The last user is {qc.Users.Last().Email}.");
} else {
log.Info("No users found in database.");
}
}
} catch (Exception ex) {
log.Error($"Error: {ex.Message}");
}
}
}
【问题讨论】:
-
edml dll 是否与 Visual Studio 中的包一起部署。可能是quotecandyEntities()相关的类没有被复制。
-
我对 Azure 比较陌生。我在哪里可以看到部署了哪些文件?
-
您可以使用 kudu 浏览器查看部署了哪些文件。 Kudu可以通过functionappname.scm.azurewebsites.net访问
-
您可以使用 kudu 浏览器查看部署了哪些文件。 Kudu 可以通过functionappname.scm.azurewebsites.net 访问 进入 Kudu 后,您可以转到调试控制台 - 选择 cmd。这将打开一个 bash 窗口。 blogs.msdn.microsoft.com/uk_faculty_connection/2017/05/15/…这里给出了kudu的概述
-
在 D:\home\site\wwwroot\bin\ 下我看到这些文件:Dolaris.QuoteCandy.EDM.dll、Dolaris.QuoteCandy.EDM.dll.config EntityFramework.dll、EntityFramework.SqlServer。 dll、EntityFramework.xml、Microsoft.Data.Edm.dll、Microsoft.Data.OData.dll
标签: c# entity-framework azure