我遵循這兩個教程來了解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沒有任何connectionString自動創建localdb?
有這兩個教程之間的區別:第一個說,我沒有Web.config
下創建的connectionString爲EF創建一個新的數據庫,但斯科特谷的教程說我需要至。
我成功與第一個:
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.爲什麼我的程序成功沒有我添加任何connectionStrings?我以爲我必須添加
<add name="DBAccess" ......
/>。如果沒有必要,爲什麼斯科特古說我應該添加它?
2.究竟是什麼觸發了數據庫的自動創建?從我嘗試過的方式來看,數據庫不會在編譯或創建DbContext時創建,而只會在添加一些數據時創建。它是否正確?