我正在使用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