4

我已经使用 EF 代码优先创建了一个数据库,例如http://blogs.msdn.com/b/adonet/archive/2011/03/15/ef-4-1-code-first-walkthrough.aspx。但是,当我将数据输入到 db byadd()然后调用时savechanges(),我在 SQL Server 数据库文件夹中看不到新数据库,也没有例外。这样对吗?我在哪里可以找到我的数据库以及如何将它放在数据库文件夹中?

我使用以下代码:

     public class Name
      {
       public long NameId { get; set; }
       public string FullName { get; set; }
      }

   public class InfoContext : DbContext
     {
       public DbSet<Name> Names { get; set; }        
     }

然后我称之为:

      var db = new InfoContext();
        var Names = new Name
        {
            NameId = 1,
            FullName = "test"
        };
        db.Names.Add(Name);

        db.SaveChanges();
        var test = db.Names.Find(1);//there I get correct value

我在 web.config 中有 connectionString,如下所示:

     <connectionStrings>
     <add name="InfoName" providerName="System.Data.SqlClient" 
     connectionString="Server = .\MYINSTANCE; Initial Catalog=mydbname;" />
   </connectionStrings>
4

3 回答 3

2

根据您的评论,您需要修改web.config项目根目录中的文件(而不是Views文件夹中的文件。您可以在其中添加如下部分:

<connectionStrings>
    <add name="EFDbContext" connectionString="Data Source = .; Initial Catalog = ITSDB; Integrated Security = true" providerName="System.Data.SqlClient"/>
</connectionStrings> 

元素的 name 属性是您的 Data 模型的 DbContext 名称,因此如果您的类定义为:

public class SomeContext : DbContext
{
      ...
}

那么你的配置应该是:

<connectionStrings>
    <add name="SomeContext" connectionString="Data Source = .; Initial Catalog = ITSDB; Integrated Security = true" providerName="System.Data.SqlClient"/>
</connectionStrings>

至于连接字符串,它取决于您的数据库。

于 2013-08-17T15:26:02.857 回答
0

检查配置中的 defaultConnectionFactory 类型。我希望它设置为 LocalConnectionFactory,因为这似乎是默认设置。

将其更改为以下内容,您的 SQL 实例将被使用。

<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework">
  <parameters>
    <parameter value="Data Source=.; Integrated Security=True; MultipleActiveResultSets=True;" />
  </parameters>
</defaultConnectionFactory>

您的数据库应出现在 SQL Management Studio (SQLMS) 中,其名称应与命名空间和 DbContext 匹配。

于 2014-11-13T05:25:13.507 回答
0

或者您可以输入“Data Source =”值您在 SQL Management Studio 中选择的服务器名称。

<connectionStrings>
<add name="SomeContext" connectionString="Data Source = **Server'sName**; Initial Catalog = ITSDB; Integrated Security = true" providerName="System.Data.SqlClient"/>

于 2015-01-20T18:00:06.953 回答