不支持关键字:'数据源':EF代码优先使用ObjectContext和LocalDB

时间:2012-12-30 01:11:46

标签: asp.net-mvc entity-framework code-first localdb

当我尝试使用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:不支持关键字:'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会抛出该错误的明确答案。

任何帮助都是适用的。谢谢!

1 个答案:

答案 0 :(得分:3)

ObjectContext采用EF连接字符串(包含MetadataProvider Connection String个关键字),而不是提供者特定的连接字符串。

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