【问题标题】:Entity Framework, Connection String throws formatexception实体框架,连接字符串抛出格式异常
【发布时间】:2014-12-18 14:17:22
【问题描述】:

我正在使用实体框架 6.1.1

我在一个项目中有一个类,其中包括 FBuyShopContext,另一个用于模型,以及一个带有 MVC 5 的 Asp 项目

在我的第一个项目中,我关注了

public class FBuyShopContext : DbContext
{
    public FBuyShopContext()
        : base("name=FBuyShopContext")
    {
    }


    public virtual DbSet<Product> Admins { get; set; }
}

}

以及其他库项目中的产品模型

public class Product
{
    public Product()
    {}

    public int Id { get; set; }
    [Required]
    public string Name { get; set; }
}

我的连接字符串如下

 <connectionStrings>
<add name="FBuyShopContext" connectionString="data source=tschikovani\SQLEXPRESS;initial catalog=OnlineShop;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>

当我想在控制器的数据库中添加新产品时

FBuyShopContext db = new FBuyShopContext();
Product new = new Product ();
new.Name = "Iphone";
db.Products.Add(new);
db.SaveChanges();

我有以下异常

An exception of type 'System.ArgumentException' occurred in EntityFramework.dll
keyword not supported: 'data source'.

为什么会这样?连接字符串完全正确

【问题讨论】:

    标签: entity-framework connection-string


    【解决方案1】:

    我可以看到这里发生了三件事:

    1) DbContext 的构造函数应采用连接字符串的名称,因此将其更改为 FBuyShopContext 而不是 name=FBuyShopContext

     public class FBuyShopContext : DbContext
     {
          public FbuyShopContext() : base("FBuyShopContext") {}
     }
    

    2) 您的连接字符串以&amp;quot; 结尾,这是一个无效字符。你应该删除它。

    3) 您应该在模型上指定您的主键,可以使用 fluent API 或通过数据注释:

     public class Product {
          [Key]
          public int Id { get; set; }
    
          [Required]
          public string Name { get; set; }
     }
    

    我很确定您遇到的错误是由 2) 引起的,但是 1) 和 3) 会在以后给您带来问题。

    【讨论】:

    • 我删除了“但没有任何改变,我仍然有异常
    • @needermen 是不是同一个例外?您是否还修复了 1) 和 3)?
    • 是的,同样的例外,当然我也修复了1和3
    • 尝试将data source 更改为Data Source(注意大写)。对initial catalog 执行相同操作(将其更改为Initial Catalog),以及您可能遇到的其他类似属性
    • 您介意发布整个配置文件吗?省略不相关的部分,例如应用程序键
    猜你喜欢
    • 1970-01-01
    • 2012-10-20
    • 2012-09-24
    • 1970-01-01
    • 2011-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多