[英]EF Code First approach on relationships
作為ASP .NET的新手,我一直在研究實體建模方法,看來遵循Code First的使用Entity Framework的 ORM
對我來說是最好的方法。
通過閱讀本教程,我得到的印象是, 對於每個實體,您都需要創建一個connectionstring
(如果我輸入錯誤,請更正我),並且在涉及到關系數據時,這一事實使我感到困惑,例如,在此示例中,數據庫本身似乎只覆蓋一個實體。 那么在EF中如何處理關系數據。
PS:出於統一目的,請使用實體Movies
, Customers
和以正確命名約定命名的關系表。
您每個DbContext
創建一個連接字符串。 這是定義DBContext的類:
public class MovieDBContext : DbContext
{
public DbSet<Movie> Movies { get; set; }
}
要在此上下文中添加更多表,請添加更多這樣的行(例如, public DbSet<Customer> Customers { get; set; }
。
public class MovieDBContext : DbContext
{
public DbSet<Movie> Movies { get; set; }
public DbSet<Ticket> Tickets { get; set; }
}
從上下文訪問這些:
public class TicketController {
private MovieDBContext db = new MovieDBContext ();
public ActionResult Index(int movieId) {
var listOfTickets = db.Tickets.Where(t=>t.MovieId == movieId).ToList();
var parentMovie = db.Movie.Where(m=>m.Id == movieId).Single();
...
}
}
連接字符串:包含初始化信息,該初始化信息作為參數從數據提供程序傳遞到數據源。
每次連接到不同的東西時都需要一個新的連接字符串(可以使用相同的ConnectionString擁有兩個不同的DBContext),盡管在本教程中,兩個連接字符串的數據源都相同,但是AttachDbFileName卻不同。
初始化每個DbContext時,它將使用這些連接字符串之一。 在本教程中,第一個連接字符串(默認連接)用於成員身份(用戶帳戶等),而另一個連接字符串用於MovieDBContext,並且在您進行教程時將包含電影和其他內容。
也可以將它們都放在同一個數據庫中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.