Невозможно удалить запись в выражении ссылки
У меня есть две таблицы: TblAppointmentTypes
а также TblEmployeeInfo
, Между этими двумя таблицами существует взаимосвязь между многими со объединенной таблицей, которая TblEmployeeServices
, Есть две записи в TblAppointmentTypes
и четыре записи в TblEmployeeInfo
, Все две записи TblAppointmentTypes
присваивается всем записям в TblEmployeeInfo
, что есть восемь записей в TblEmployeeServices
, Я хочу получить все услуги, которые назначены для всех четырех Employees
, он должен вернуть 2, который назначен всем четырем сотрудникам, но мой запрос вернет 8 записей, четыре дублирующих службы.
Я использую Telerik Open Access ORM. Вот код:
public static List<TblAppointmentType> GetAllAppointmentType(List<int> employeeIDs)
{
var list = new List<TblAppointmentType>();
if (employeeIDs != null && employeeIDs.Count > 0)
{
var dc = new Entities();
list = (from a in dc.TblAppointmentTypes.Distinct()
join e in dc.TblEmployeeServices on a.ID equals e.AppointmentTypeID
where a.IsDeleted == false && employeeIDs.Contains<int>(e.EmployeeID)
select a).ToList();
}
return list;
}
1 ответ
Как я понял, вы хотите получить все типы AppointmentTypes, которые относятся ко всем сотрудникам. Это означает, что AppTypes, относящиеся к 3 сотрудникам (в вашем случае), должны быть исключены. Итак, самый эффективный код, который я пробовал, выглядит так:
list = (from a in dc.TblAppointmentTypes
join e in dc.TblEmployeeServices on a.ID equals e.AppointmentTypeID
where a.IsDeleted == false
group e.EmployeeID by a into g
where g.count() == employeeIDs.Count()
select g.Key).ToList();