我正在使用Timesheet系統。我第一次使用實體框架,並且對關係如何工作感到困惑。如何從Entity Framework數據庫獲取對象列表?
我有以下類,Week
:
public class Week
{
public int WeekId { get; set; }
public DateTime FirstDayOfWeek { get; set; }
public List<TimeEntry> TimeEntries { get; set; }
public Week()
{
TimeEntries = new List<TimeEntry>();
}
}
;每星期包含了一些TimeEntries
:
public class TimeEntry
{
public int TimeEntryID { get; set; }
public double MonHours { get; set; }
public double TueHours { get; set; }
public double WedHours { get; set; }
public double ThuHours { get; set; }
public double FriHours { get; set; }
}
英孚已經創建的表,這些是如下的方式:
dbo.Weeks
WeekId(int)
Firstdayofweek可(日期時間)
dbo.TimeEntries
TimeEntryId(INT)
MonHours(浮點)
TueHours(浮點)
WedHours(浮點)
ThuHours(浮點)
FriHours(浮點)
Week_WeekId( int)
在我的表中,我有以下內容:
WeekId --- Firstdayofweek可
1 ------------ 2017年7月31日
TimeEntryId --- --- MonHours ...- TueHours Week_WeekId
1 --- -------------- 1 --------------- 2 ... --------------- 1
2 ----------------- 0 --------------- 1 ...------------ -1
(很抱歉沒能嚴重繪製表!)
問題是,當我嘗試和檢索使用LINQ從我的控制器的數據,它不拉回來TimeEntries名單。
這是查詢我使用:
Week SelectedWeek = (from w in db.Weeks
where w.WeekId == 1
select w).FirstOrDefault();
然而,SelectedWeek.TimeEntries
計數爲零?
我也嘗試了相反的做法(這似乎從一個非EF觀點更符合邏輯):
var timeEntries = from te in db.TimeEntries
where te.week_weekId == 1
select te;
但是這給了錯誤:
TimeEntry does not contain a definition for week_weekId...
什麼是應該做的正確方法這個?
任何理由的問題提到MVC,爲什麼它標記爲這樣?如果不是,我建議你刪除這個問題,使問題更清楚。 – Tipx