【发布时间】:2018-03-20 23:24:46
【问题描述】:
在我的 sql 数据库中,WorkDay 字段为字符串格式,在模型中为nullable DayOfWeek,即public DayOfWeek? WorkDay { get; set; }。将数据库WorkDay 字段转换为模型WorkDay 字段时,会生成如下错误:
无法将表达式“Table(StaffSchedule)”转换为 SQL 和 无法将其视为本地表达式。
我还尝试创建三个不同的 linq 语句,如下所示。
1) 从 StaffSchedule 表中检索数据。
2) 对其应用选择操作。
3) 对选定的数据应用 AddRange 操作。
results.AddRange(dataContext.StaffSchedules
.Where(x => !x.Excluded)
.Where(x => x.DistrictID == districtId && x.District.Active && (x.Position == positionTeacher || x.Position == positionDirector || x.Position == positionAssistant || x.Position == positionAssistantDirector))
.Select(x => new Core.StaffSchedule()
{
ID = x.ID,
Staff = x.Staff.SelectSummary(),
Position = (StaffPosition)Enum.Parse(typeof(StaffPosition), x.Position, true),
Class = refs.Class,
District = x.District.SelectSummary(),
Time = null,
Reoccurring = false,
Inherited = true,
ReoccourringStart = x.ReoccourringStart,
ReoccourringEnd = x.ReoccourringEnd,
WorkDay = x.WorkDay == null ? (DayOfWeek?)null : (DayOfWeek)Enum.Parse(typeof(DayOfWeek), x.WorkDay, true)
}));
这是string 到nullable DayOfWeek 字段的转换代码。这在我的情况下会导致错误。
WorkDay = x.WorkDay == null ? (DayOfWeek?)null : (DayOfWeek)Enum.Parse(typeof(DayOfWeek), x.WorkDay, true)
我已经浏览了下面的链接。
【问题讨论】:
-
为什么在异常消息中显示“Table(StaffSchedule)”?
dataContext.StaffSchedules的确切类型是什么?
标签: c# entity-framework linq