Ниже приведены примеры данных с целью объяснения этого вопроса:
tblPrimary
1, John, 2011-01-03T11:12:00z
2, John, 2011-02-04T10:54:12z
tblDetail:
1, 1, 14, Dept01
2, 1, 12, Dept02
3, 2, 10, Dept03
4, 2, 17, Dept04
Используя приведенную выше таблицу примеров, мне присваивается «Имя», где мне нужно возвращать все подробные записи, связанные с именем вtblPrimary.Name.TblPrimary.Name не является уникальным, поэтому будут дубликаты, но это действительно разные позиции, так как они имеют разные дату и время.
Используя SQLMetal, код генерируется так, что объект обрабатывает отношения между двумястолы.Имея это в виду, я строю запрос следующим образом:
var q = from i in dbcontext.tblDetail
where i.tblPrimary.Name == 'John' && i.PrimaryId == i.tblPrimary.PrimaryId
select i;
Используя приведенный выше пример данных, если у меня есть два «Джона» в tblPrimary с разными DateAdded и 2 записи в tblDetail для каждого Джона,Результат, возвращаемый запросом:
John - 2011-01-03T11:12:00z
1, 1, 14, Dept01
2, 1, 12, Dept02
3, 2, 10, Dept03
4, 2, 17, Dept04
John - 2011-02-04T10:54:12z
1, 1, 14, Dept01
2, 1, 12, Dept02
3, 2, 10, Dept03
4, 2, 17, Dept04
Что я действительно хочу получить, так это:
John - 2011-01-03T11:12:00z
1, 1, 14, Dept01
2, 1, 12, Dept02
John - 2011-02-04T10:54:12z
3, 2, 10, Dept03
4, 2, 17, Dept04
Кто-нибудь может подсказать, как я могу решить этот запрос Linq без использования Joins?Я предполагаю, что сгенерированные sqlmetal отношения между двумя таблицами должны обрабатывать объединения, уже для меня.