asp.net-mvc - 不支持关键字 : 'data source' .:使用 ObjectContext 和 LocalDB 的 EF 代码优先

标签 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:不支持关键字:'数据源'。

我正在使用 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 会抛出该错误的明确答案。

感谢任何帮助。谢谢!

最佳答案

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

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

关于asp.net-mvc - 不支持关键字 : 'data source' .:使用 ObjectContext 和 LocalDB 的 EF 代码优先,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14087430/

相关文章:

javascript - jQuery 自动完成结果中出现的 jQuery UI 图标

mysql - 从 Entity Framework 6 Code First MSSQL 迁移到 MySQL

c# - 影响如何在 EF 6 代码优先中从数据库创建实体类

c# - EF6 CodeFirst 我的 [Key] Id 列不会像标识列那样自动递增

c# - 如何在 asp.net MVC 中获取最后保存的(不是最近保存的)行的 ID?

sql-server - 如何首先在 EF 代码中制作持久计算列?

c# - ASP.NET MVC5 拒绝映射与物理路径匹配的路由

asp.net-mvc - ASP.NET MVC 编辑多个子记录的示例

asp.net - RedirectToAction 不刷新页面

entity-framework - 首先在 EF 代码中作为组合键的一部分的文字或常量