我正在关注这两个教程以了解 EF 的工作原理。
http://msdn.microsoft.com/en-us/data/jj193542
http://weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with-entity-framework-4 .aspx
这两个教程之间有区别:第一个说我不必Web.config
为 EF 创建一个 connectionString 来创建新数据库,但 Scott Gu 的教程说我需要。
我成功了第一个:
namespace LearnDB.Models
{
public class Person
{
[Key]
public string Name { get; set; }
public int Age { get; set; }
}
}
namespace LearnDB.DAL
{
public class DBAccess : DbContext
{
public DbSet<Person> Persons { get; set; }
}
}
namespace LearnDB.Controllers
{
public class HomeController : Controller
{
public string Index()
{
var db = new DBAccess();
var p = new Person { Name = "A", Age = 1 };
db.Persons.Add(p);
db.SaveChanges();
foreach (var per in db.Persons)
{
return per.Name;
}
return "hi";
}
}
}
该程序运行成功。
但是,我想知道:
1. 为什么我的程序没有添加任何连接字符串就成功了?我想我必须添加
<add name="DBAccess" ......
/>。如果没有必要,为什么 Scott Gu 说我应该添加它?
2.究竟是什么触发了数据库的自动创建?根据我的尝试,不会在编译或创建 DbContext 时创建数据库,而只会在添加一些数据时创建数据库。这个对吗?