What is the location of database if doing Code First using SqlServer CE 4.0?
I am learning Code First development with a console application. In many of the examples, including Scott Gu's post, they suggest using Sql Server CE 4.0 and set it up so that the code creates the d开发者_Go百科atabase automagically.
I am doing a console app and would like to examine the database with a management tool, such as management studio or linqpad. What is the location of the sdf file that is created?
I created an App.Config and placed the following in it:
<?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>
However, NerdDinner is not created, and instead a database in SQLExpress is created. I seem to have confused some things here.
It depends upon the connection string you have set in app.config file. In most cases (DataDirectory
) database file will be created at Debug\bin
folder (winform app).
Sample app: (Add the ref of System.ComponentModel.DataAnnotations.dll
and 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 (The name of connection string must match the name of Context
class)
<configuration>
<connectionStrings>
<add name="Test"
connectionString="Data source=|DataDirectory|Test.sdf"
providerName="System.Data.SqlServerCe.4.0"
/>
</connectionStrings>
</configuration>
Add a record,
Test db = new Test();
db.Emps.Add(new Employee() { EmpNo = 1, Name = "Mr.X" });
db.SaveChanges();
精彩评论