1
我剛剛開始了一些實體框架的探索,我想現在是時候看看大家都在抱怨什麼。我遇到了一個問題,實體似乎沒有返回任何對象上下文。我從一個數據庫中生成了三個相互鏈接的表格。實體框架沒有填充上下文
Courses
Instructors
CanTeach
關係是你所期望的:一個療程可以涉及到多個CanTeach實體和講師也可以涉及多個CanTeach實體。我還爲我的項目添加了OData服務,該服務也使用相同的模型。所以我可以運行查詢,如
from a in CanTeach
where a.Instructor.FirstName == "Barry"
select new { Name = a.Instructor.FirstName + " " + a.Instructor.LastName,
Course = a.Course.Name}
對於使用LINQPad的OData端點沒有問題。然而,當我做一個簡單的查詢,如
public Instructor GetInstructorFromID(int ID)
{
return context.Instructors.Where(i => i.ID == ID).FirstOrDefault();
}
CanTeach列表爲空。我知道EF中的所有內容都是延遲加載的,當我查看對象上下文時,我的上下文有可能超出了範圍,但是,即使在運行查詢時嘗試獲取對象上下文,也會產生空對象上下文。
我在做什麼錯?
編輯:
除了下面我的答案發現,
return context.Instructors.Include("CanTeach").Where(i => i.ID == ID).FirstOrDefault();
努力爲那些尋找更多能說一口流利的API。
啊,我沒想到有明確加載它們。謝謝 – stimms 2010-06-15 18:48:50