Каково расположение базы данных, если вы выполняете Code First с помощью SqlServer CE 4.0? - PullRequest
3 голосов
/ 04 октября 2011

Я изучаю разработку Code First с помощью консольного приложения.Во многих примерах, включая пост Скотта Гу, они предлагают использовать Sql Server CE 4.0 и настроить его так, чтобы код автоматически создавал базу данных.

Я создаю консольное приложение и хотел бы изучить базу данных.с помощью инструмента управления, такого как студия управления или linqpad.Каково расположение создаваемого sdf-файла?

Я создал файл App.Config и поместил в него следующее:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectionStrings>
    <add
      name="NerdDinners"
      providerName="System.Data.SqlServerCe.4.0"
      connectionString="Data Source =|DataDirectory|NerdDinners.sdf"/>
  </connectionStrings>
</configuration>

Однако NerdDinner не создается, а вместо этогобаза данных в SQLExpress создана.Я, кажется, перепутал некоторые вещи здесь.

1 Ответ

2 голосов
/ 04 октября 2011

Это зависит от строки подключения, которую вы установили в файле app.config. В большинстве случаев (DataDirectory) файл базы данных будет создаваться в папке Debug\bin (приложение winform).

Пример приложения: (Добавьте ссылку System.ComponentModel.DataAnnotations.dll и EntityFramework.dll)

public class Employee
{
    [Key]
    public int EmpNo { get; set; }
    public string Name { get; set; }
}
public class Test : System.Data.Entity.DbContext
{
    public System.Data.Entity.DbSet<Employee> Emps { get; set; }
}

app.config (имя строки подключения должно совпадать с именем Context класса)

<configuration>
<connectionStrings>
  <add  name="Test"
          connectionString="Data source=|DataDirectory|Test.sdf" 
          providerName="System.Data.SqlServerCe.4.0"
        />
</connectionStrings>
</configuration>

Добавить запись,

Test db = new Test();

db.Emps.Add(new Employee() { EmpNo = 1, Name = "Mr.X" });
db.SaveChanges();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...