Я пишу оператор LINQ to SQL, и я после стандартного синтаксиса для нормального внутреннего соединения с ON
предложением в C #.
Как вы представляете следующее в LINQ to SQL:
select DealerContact.*
from Dealer
inner join DealerContact on Dealer.DealerID = DealerContact.DealerID
Ответы:
Это выглядит примерно так:
Было бы неплохо иметь разумные имена и поля для ваших таблиц для лучшего примера. :)
Обновить
Я думаю, что для вашего запроса это может быть более подходящим:
Так как вы ищете контакты, а не дилеров.
источник
from c or from t1
И поскольку я предпочитаю синтаксис цепочки выражений, вот как вы это делаете:
источник
Расширить цепочку выражений синтаксиса ответа Clever Human:
Если вы хотите что-то сделать (например, отфильтровать или выбрать) для полей из обеих таблиц, соединяемых вместе - вместо этого только для одной из этих двух таблиц - вы можете создать новый объект в лямбда-выражении конечного параметра для метода Join включая обе эти таблицы, например:
Интересной частью является лямбда-выражение в строке 4 этого примера:
... где мы создаем новый объект анонимного типа, который имеет в качестве свойств записи DealerContact и Dealer вместе со всеми их полями.
Затем мы можем использовать поля из этих записей при фильтрации и выборе результатов, как продемонстрировано в оставшейся части примера, который использует
dc_d
в качестве имени для анонимного объекта, который мы создали, в качестве свойств которого используются как записи DealerContact, так и записи Dealer.источник
источник
ContactStatus
это действительно перечисление, и наc.StatusID
самом деле это не идентификатор, а числовое значение перечисления. Если я прав,(ContactStatus)c.StatusID
на самом деле это просто приведение целого числа к перечислению.Используйте оператор Linq Join :
источник
Вы создаете внешний ключ, а LINQ-to-SQL создает свойства навигации для вас. Каждый из них
Dealer
будет иметь коллекцию,DealerContacts
которую вы можете выбирать, фильтровать и манипулировать.или
Если вы не используете свойства навигации, вы упускаете одно из основных преимуществ LINQ-to-SQL - часть, которая отображает граф объектов.
источник
в основном оператор соединения LINQ не дает никаких преимуществ для SQL. Т.е. следующий запрос
приведет к INNER JOIN в SQL
Объединение полезно для IEnumerable <>, потому что оно более эффективно:
пункт будет повторен для каждого дилера, но для IQueryable <> это не так. Также соединение менее гибкое.
источник
На самом деле, часто лучше не включаться, в linq то есть. Когда есть свойства навигации, очень краткий способ написать ваш оператор linq:
Это переводит к предложению where:
источник
SelectMany()
.Используйте LINQ соединения для выполнения Inner Join.
источник
Попробуй это :
источник
источник
Где таблицы ученика и курса имеют отношения первичного ключа и внешнего ключа
источник
попробуйте вместо этого,
источник
источник
источник
Напишите имена таблиц, которые вы хотите, и инициализируйте выбор, чтобы получить результат полей.
источник
Внутреннее соединение двух таблиц в linq C #
источник
из d1 в DealerContrac присоединиться к d2 в DealerContrac по d1.dealearid равно d2.dealerid выбрать new {dealercontract. *}
источник
Один лучший пример
Имена таблиц:
TBL_Emp
иTBL_Dep
источник