Дополнительно
Каков синтаксис внутреннего соединения в LINQ to SQL?
Я пишу оператор LINQ to SQL, и мне нужен стандартный синтаксис для обычного внутреннего соединения с предложением ON
на C#.
Как вы представляете следующее в LINQ to SQL:
select DealerContact.*
from Dealer
inner join DealerContact on Dealer.DealerID = DealerContact.DealerID
432
19
Это звучит примерно так:
Было бы неплохо иметь разумные имена и поля для ваших таблиц для лучшего примера. :)
Обновление
Я думаю, что для вашего запроса это может быть более подходящим:
Поскольку вы ищете контакты, а не дилеров.
И потому я предпочитаю выражение синтаксис цепи, вот как вы делаете это с этим:
Чтобы продлить выражения синтаксис цепи ответить от умного человека:
Если вы хотели сделать что-то (например, фильтр или выберите) на поля из обеих таблиц, которые соединяются вместе, вместо того, чтобы хотя бы один из этих двух таблиц, можно создать новый объект в лямбда-выражение последнего параметра в метод Join, включающий как из этих таблиц, например:
Самая интересная часть-это лямбда-выражение в строке 4 этого примера:
...где мы построим новый анонимный тип объекта, который имеет свойства DealerContact и дилерской записи, вместе со всеми их полями.
Затем мы можем использовать поля из этих записей, как мы фильтруем и выберите результаты, как показала остальная часть пример, который использует `dc_d как имя для анонимного объекта, который мы строили, который имеет как DealerContact и дилер записывает как свои свойства.
Вы создаете внешний ключ, и LINQ-в-SQL создает свойства навигации для вас. Каждый дилер будет иметь коллекцию `DealerContacts, по которым вы можете выбирать, фильтровать и манипулировать.
или
Если вы'повторно не использовать свойства навигации, вы'вновь пропустить одно из главных преимуществ в технологии LINQ-в-SQL и ту часть, которая сопоставляет объект диаграммы.
Используйте оператор Linq Join:
в основном для LINQ присоединяйтесь оператор не дает никакой пользы для SQL. Т. е. следующий запрос
приведет в INNER JOIN в SQL
присоединяйтесь полезно для интерфейса IEnumerable<> потому что это более эффективно:
предложение будет повторно выполняться для каждого дилера ** Но для интерфейса IQueryable<> это не тот случай. Также присоединяйтесь** менее гибкие.
На самом деле, часто лучше не вступать в LINQ, который является. Когда есть навигационные свойства в очень сжатой форме, чтобы написать заявление LINQ-это:
Оно переводится в предложение where:
Используйте LINQ, которая присоединяется, чтобы выполнить внутреннее соединение.
Попробуйте это :
попробуйте вместо этого
Где студент и поле таблицы имеют первичный ключ и внешний ключ отношения
из Д1 в Д2 DealerContrac вступить в DealerContrac на Д1.dealearid равна Д2.dealerid выберите новый {dealercontract.*}
Писать имена таблиц, которые вы хотите, и инициализировать выбрать, чтобы получить результат поля.
Внутреннее соединение двух таблиц в LINQ в C#
Одним лучшим примером
Имена таблиц :
TBL_Emp
иTBL_Dep