簡體   English   中英

急切加載包括使用問題

[英]Eager Loading Include use issue

我對MVC和Entity Framework還是很陌生,並且正在嘗試遵循asp.net教程並遇到重大障礙。 我有一個表,可以正確顯示,但是在表中顯示外鍵,而不是參考表中的數據。 我想我想在這里利用熱切的加載,但是我不確定將include放在哪里。 我相信asp.net上的教程適用於舊版本的MVC。 我了解我的include應該放在以下片段中。 我試圖包括藝術家類型。

首先,我模型課程的一部分:

        modelBuilder.Entity<tblArtist>()
            .HasMany(e => e.tblArtisttblArtistType)
            .WithRequired(e => e.tblArtist)
            .WillCascadeOnDelete(false);

        modelBuilder.Entity<tblArtist>()
            .HasMany(e => e.tblIssueArtist)
            .WithRequired(e => e.tblArtist)
            .WillCascadeOnDelete(false);

        modelBuilder.Entity<tblArtist>()
            .HasMany(e => e.tblIssueAutograph)
            .WithRequired(e => e.tblArtist)
            .WillCascadeOnDelete(false);

        modelBuilder.Entity<tblArtistType>()
            .HasMany(e => e.tblArtisttblArtistType)
            .WithRequired(e => e.tblArtistType)
            .WillCascadeOnDelete(false);

而我的控制器代碼:

public class tblArtistsController : Controller
{
    private joerdieComicsModel1 db = new joerdieComicsModel1();

    // GET: tblArtists
    public ActionResult Index()
    {

        return View(db.tblArtist.ToList());
    }

    // GET: tblArtists/Details/5
    public ActionResult Details(int? id)
    {
        if (id == null)
        {
            return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
        }
        tblArtist tblArtist = db.tblArtist.Find(id);
        if (tblArtist == null)
        {
            return HttpNotFound();
        }
        return View(tblArtist);
    }

我知道包含代碼應該放在公共ActionResult Index()方法中,但是我不知道該怎么做。

謝謝。

當您具有多對多關系時,實體框架會自動創建表接口,但是對於具有外鍵的關系,您必須建模“ EX:ArtistId”。

例如: Person.cs

  public class Person
  {
    public int Id { get; set; }

    public string Name { get; set; }

    public ICollection<Book> Books { get; set; }
  }

Book.cs

    public class Book
{
    public int Id { get; set; }

    public string Name { get; set; }

    public Person Person { get; set; }

    public int PersonId { get; set; }
}

在模型構建器中:

 modelBuilder.Entity<Person>()
             HasMany(_ => _.Books)
            .WithRequired(_ => _.Person)
            .HasForeignKey(_ => _.PersonId)
            .WillCascadeOnDelete();

看: 一對多

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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