c# - Azure函数使用实体框架但连接字符串不起作用
问题描述
我有一个使用处理实体框架的项目 dll 的 azure V1 函数。首先,我将连接字符串设置为
metadata=res://*/Dev.csdl|res://*/Dev.ssdl|res://*/Dev.msl;
provider=System.Data.SqlClient;
provider connection string='
data source={IP};initial catalog={DBName};
persist security info=True;
user id={User};password={PW};
MultipleActiveResultSets=True;
App=EntityFramework'
我得到了
不支持关键字:“元数据”。
然后我将连接字符串更改为
data source={IP};initial catalog={DBName};persist security info=True;user id={User};password={PW};
我得到了
上下文在 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
这是我的代码
DevEntities db = new DevEntities();
var lstAcAccount = db.AcAccounts.ToList();
return req.CreateResponse(HttpStatusCode.OK, lstAcAccount);
DevEntities 来自使用上述连接字符串的其他 dll 项目。
那么,我应该怎么做才能完成这项工作?
解决方案
您不应该使用生成的连接字符串,现在您的解决方案中包含所有元数据文件。而是尝试在 app.config 的连接字符串部分使用:
"data source=localhost\sqlexpress; initial catalog=sample; integrated security=True;MultipleActiveResultSets=True;"
如果是数据库优先:
打开.edmx[Diagram] -> right click -> "Update Model from database"
并查看是否会出现“ Add
”、“ Refresh
”和“ Delete
”选项卡。
如果没有...可能您的连接已断开,并且 VS 创建一个新的连接字符串的对话框将会出现。
希望能帮助到你。
推荐阅读
- android - ScrollView 根本无法滚动
- json - 使用 JQ 将 JSON 嵌套到 CSV
- c# - DataTable.Load() 将枚举转换为整数
- python - 如何按单个单词分组并计算包含元组项的列表的平均分数?
- python - Pubsub 模拟器重新发送确认的消息
- python - Python:如何使用 IMAP 从收件箱中的某些电子邮件地址中提取姓名?
- reporting - 使用 Microstrategy 生成 Erwin 9+
- javascript - 使用 JavaScript 的 Webhook
- php - 未找到 Laravel 'Illuminate\Support\Facades\Storage'
- powershell - 在本地使用 PowerShell 获取分支上的 Azure DevOps 上次构建 ID