簡體   English   中英

EF Code First關系法

[英]EF Code First approach on relationships

作為ASP .NET的新手,我一直在研究實體建模方法,看來遵循Code First的使用Entity Framework的 ORM對我來說是最好的方法。

通過閱讀教程,我得到的印象是, 對於每個實體,您都需要創建一個connectionstring (如果我輸入錯誤,請更正我),並且在涉及到關系數據時,這一事實使我感到困惑,例如,在此示例中,數據庫本身似乎只覆蓋一個實體。 那么在EF中如何處理關系數據。

PS:出於統一目的,請使用實體MoviesCustomers和以正確命名約定命名的關系表。

您每個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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM