EF の仕組みを理解するために、これら 2 つのチュートリアルに従っています。
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
これら 2 つのチュートリアルには違いがあります。最初のチュートリアルではWeb.config
、EF で新しい DB を作成するために 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. connectionStrings を追加しなくてもプログラムが成功するのはなぜですか?
<add name="DBAccess" ......
/>を追加する必要があると思いました。必要ないのに、なぜ Scott Gu は私がそれを追加すべきだと言ったのですか?
2. データベースの自動作成を正確にトリガーするものは何ですか? 私が試したことから、DBはDbContextのコンパイルまたは作成では作成されませんが、追加されるデータのみで作成されます。これは正しいです?