簡體   English   中英

編碼第一個一對多關系

[英]Code first one to Many relationship

我已經定義了這樣的一對多關系

    public class ClassA
    {
        [Key, ForeignKey("ClassB"), Column(Order = 0)]
        public int ClassB_ID { get; set; }
         [Key, Column(Order=1)]
        public string  name { get; set; }
        public bool IsApproved { get; set; }
        public virtual ClassB ClassB { get; set; }
     }
    public class ClassB
    {
     [Key]
     public int ID{get;set;}
     public string Name{get;set;}
     public virtual ICollection<ClassA> classAs{get;set;}
    }

正常工作,直到我將classA綁定到具有Bind(ClassB.Name)的Listview

我得到了ObjectContext實例已被處置,不能再用於需要連接的操作。

這可能是因為使用了惰性加載 嘗試使用導航屬性(ClassA)進行訪問時,這會導致數據庫的額外往返行程,但是您的上下文已被釋放。

延遲加載 :首次讀取實體時,不會檢索相關數據。 但是,第一次嘗試訪問導航屬性時,將自動檢索該導航屬性所需的數據。 這導致將多個查詢發送到數據庫。

您可能可以通過急切加載 Include()顯式加載解決此問題。

var values = context.ClassB.Include("ClassA").ToList()

http://www.asp.net/web-forms/tutorials/continuing-with-ef/maximizing-performance-with-the-entity-framework-in-an-asp-net-web-application

暫無
暫無

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

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