在运行时设置实体框架连接字符串会引发“不支持的关键字”

时间:2013-02-01 20:43:19

标签: c# entity-framework

我正在尝试在运行时在我的Entity Framework中设置我的连接字符串。为了做到这一点,我有以下代码:

string connectionString = "tcp:[serverName],[port];initial catalog=[databaseName];user id=[userName];password=[pwd];MultipleActiveResultSets=True;App=EntityFramework";
using (MyEntities entities = new MyEntities(connectionString))
{
  MyEntity entity = new MyEntity();
  // Set entity properties here

  entities.MyEntities.Add(entity);
  entities.SaveChanges();
}

当我到达entities.MyEntities.Add(entity)的行时,会抛出异常。该例外有以下信息:

Type: ArgumentException
Message: Keyword not supported: 'tcp:[serverName],[port];initial catalog'.

为什么我写的代码不起作用?对于我的生活,我无法理解。

谢谢!

1 个答案:

答案 0 :(得分:2)

你错过了“服务器”:

string connectionString = "Server=tcp:[serverName],[port];initial catalog=[databaseName];user id=[userName];password=[pwd];MultipleActiveResultSets=True;App=EntityFramework";

(假设您只是将[serverName],[port],[databaseName]替换为问题中的代码以隐藏敏感详细信息。显然[serverName]不是有效的主机名。)

我不是100%确定“服务器”和“初始目录”一起工作,因此您可能需要“数据源”而不是“服务器”或“数据库”而不是“初始目录”。