【发布时间】:2019-04-18 12:04:51
【问题描述】:
我正在创建一个 Azure 函数,并添加了对使用实体框架的项目的引用。我已经从该项目中复制了连接字符串,并将其作为有效的 EF 连接字符串粘贴到 ConnectionStrings 对象内的 local.settings.json 文件中。
metadata=res://*/xxx.csdl|res://*/xxx.ssdl|res://*/xxx.msl;
provider=System.Data.SqlClient;
provider connection string="e;
data source=xxx;
initial catalog=xxx;
user id=xxx;
password=xxx;
MultipleActiveResultSets=True;
App=EntityFramework
"e;
但它给了我这个例外:
不支持关键字:
metadata。
如果我使用有效的 SQL 连接字符串 (如下所示),
data source=xxx;
initial catalog=xxx;
user id=xxx;
password=xxx;
MultipleActiveResultSets=True;
App=EntityFramework
我有这个例外:
上下文在 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
如何使用 Entity Framework 在 Azure 函数中创建与我的数据库的连接?我正在使用 .NET 框架,而对于 EF,我首先使用数据库。
我正在初始化我的数据库上下文如下:
using (XxxDB db = new XxxDB())
{ }
同时,我为委托人 XxxDB 创建了一个重载
public XxxDB(string connectionString): base(new EntityConnection(connectionString), true)
{ }
并在创建XxxDB时传递SQL连接字符串得到这个错误:
不支持关键字:
data source。
【问题讨论】:
-
如果项目首先使用代码,那么您不需要元数据,如果是,那么您确实需要元数据。问题是,你是如何实例化数据库上下文的?
-
@reckface:我首先使用数据库。我已经更新了我的问题
-
你是如何实例化它的?这很重要,因为 EF 将在构造函数中使用命名连接字符串
-
@reckface:很抱歉误解了您的评论。我已经更新了我的问题。
-
我更新了答案,表明您必须将
connectionString分配为ProviderConnectionString
标签: entity-framework azure-functions connection-string