我想要实现的目标:
当用户在表格(EntryLine)中输入一行时,他们会输入说明和日期。现在在EntryLine的插入代码下的C#中,我可以使用这段代码:
partial void EntryLine_Inserting(EntryLine entity)
{
if (entity.Day == null)
{
DateTime getDay = Convert.ToDateTime(entity.EntryDate);
entity.Day = getDay.ToString("dddd");
//entity.Day = getDate
}
}
现在这段代码所做的是获取用户输入的日期,并使用.ToString方法(即星期三)将日期添加到数据库中
从长远来看,这将是低效的,那么有没有办法将那天(星期三)与日表中的匹配字段相关联?然后将其分配给正确的ID?我会通过使用下面的ERD来做到这一点:
DayName ID
Monday 1
Tuesday 2
Wednesday 3
Thursday 4
Friday 5
Saturday 6
Sunday 7
答案 0 :(得分:1)
一种选择是使用DayOfWeek属性,如下所示: -
partial void EntryLines_Inserting(EntryLine entity)
{
entity.Day = Days_SingleOrDefault((int)entity.EntryDate.DayOfWeek);
}
这要求Day表中的ID反映以下DayOfWeek枚举值: -
DayName ID
Sunday 0
Monday 1
Tuesday 2
Wednesday 3
Thursday 4
Friday 5
Saturday 6
或者,您可以使用以下方法,该方法基于在日表中识别匹配的DayName: -
partial void EntryLines_Inserting(EntryLine entity)
{
var dow = entity.EntryDate.DayOfWeek.ToString();
entity.Day = Days.Where(d => d.DayName == dow).SingleOrDefault();
}