0

と の 2 つのテーブルがTblAppointmentTypesありTblEmployeeInfoます。これら 2 つのテーブルの間には多対多の関係があり、結合テーブルは ですTblEmployeeServices。には 2 つのレコードがあり、 にはTblAppointmentTypes4 つのレコードがありTblEmployeeInfoます。の 2 つのレコードすべてTblAppointmentTypesが のすべてのレコードに割り当てられ、TblEmployeeInfoには 8 つのレコードがありTblEmployeeServicesます。4 つすべてに割り当てられているすべてのサービスを取得したいのですがEmployees、4 人の従業員すべてに割り当てられている 2 を返す必要がありますが、クエリは 8 つのレコードと 4 つの重複サービスを返します。

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;
 }
4

1 に答える 1