2

当我尝试使用 ObjectContext 连接到 LocalDB 数据库时,出现“关键字不支持错误”。

这是我的连接字符串:

<add name="connStr" providerName="System.Data.SqlClient" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=proj1db;Integrated Security=True" />

这是尝试创建 ObjectContext 实例的代码:

var connectionString = ConfigurationManager
                .ConnectionStrings["connStr"]
                .ConnectionString;
ObjectContext _context = new ObjectContext(connectionString);

最后一行抛出 System.ArgumentException: Keyword not supported: 'data source'。

我正在使用 Visual Studio 2012 for Web 并以 .NET Framework 4.5 为目标。我的机器上安装了 LocalDB。

如果我使用 DbContext 代替它可以工作:

public class proj1dbContext: DbContext
{
    public proj1dbContext() : base("name=connStr")
    ...

似乎这是一个类似的问题 Help with EF Code first connection string 但不幸的是,它没有给出为什么实例化 ObjectContext 会引发该错误的明确答案。

任何帮助都会受到重视。谢谢!

4

1 回答 1

3

ObjectContext采用 EF 连接字符串(带有MetadataProvider Connection String关键字),而不是提供程序特定的连接字符串。

您不能将 ObjectContext 与 Code-First 一起使用;ObjectContext 需要元数据 XML 文件。

于 2012-12-30T01:13:44.353 回答