我是Entity Framework的新手,所以请放纵。 ;)
我在C#桌面应用程序中使用Entity Framework 6.1.3,代码优先。
假设我在SQL Server 2008中有以下两个表:
calendarweek
calendarevent
在申请表中,我有一个像这样的POCO:
class Event
{
public long Id { get; set; }
public int Year { get; set; }
public Byte Week { get; set; }
public String Title { get; set; }
public String Description { get; set; }
}
是否可以将此1:n关系投射到单个实体中?
在Entity Framework之前的时间里,我只是简单地用ADO.NET加入了两个表并手动填充了Event对象。
我分别阅读本文主题的大多数文章假设您要在两个实体上映射1:n关系。我也试过实体分裂,但它似乎是为了使用1:1的关系。
任何帮助表示感谢。
答案 0 :(得分:0)
可以说一个事件可能持续一个以上的日历周。因此,我们可以在def setalert(self):
print(self.accdis,self.arrdis,self.hrdis,self.metric)
image = ''
# acc alert checker if checked in expertGUI
if self.accdis == 1 and self.metric == 'ACC':
print('acc')
temp = Image.open(self.accimg)
temp = temp.resize((5, 5), Image.ANTIALIAS)
image = ImageTk.PhotoImage(temp)
# arousal alert checker if checked in expertGUI
elif self.arrdis == 1 and self.metric == 'EDA':
print('eda')
temp = Image.open(self.arrimg)
temp = temp.resize((5, 5), Image.ANTIALIAS)
image = ImageTk.PhotoImage(temp)
# heart rate alert checker if checked in expertGUI
elif self.hrdis == 1 and self.metric == 'HR':
print('hr')
temp = Image.open(self.hrimg)
temp = temp.resize((5, 5), Image.ANTIALIAS)
image = ImageTk.PhotoImage(temp)
return image
中使用ICollection
或DbSet
:
Event class
答案 1 :(得分:0)
您可以使用LINQ Expression
IList<Event> queryA = ( from e in context.CalenderEvents
join w in context.CalenderWeeks
on e.CalenderWeek_Id equals w.Id
select new Event
{
Id = e.Id,
Year = w.Year,
Week = w.WeekNumber,
Title = e.Title,
Description = w.Description,
} ).ToList();
或lambdas
IList<Event> queryB = context.CalenderEvents
.Include( e => e.CalenderWeek )
.Select( e => new Event
{
Id = e.Id,
Description = e.CalenderWeek.Description,
Title = e.Title,
Week = e.CalenderWeek.WeekNumber,
Year = e.CalenderWeek.Year,
} ).ToList();