Мне было любезно помогло с this Stack Overflow question.Добавление соединения к существующему запросу LINQ
Теперь я построения запроса и нужно добавить присоединяется к другим таблицам, чтобы принести в названиях и описаниях и т.д.
Мой запрос состоит в следующем:
using (var ctx = new myEntities())
{
var pc = ctx.tblPostcodes.Where(z => z.Postcode == postcodeOutward)
.Select(x => new {postcodeId = x.PostcodeID}).Single();
int pcId = pc.postcodeId;
var q = ctx.tblPrices.OrderByDescending(x => x.Cost)
.Where(c => c.PostcodeID == pcId)
.Where(s => s.ItemID < 18)
.GroupBy(x => x.ItemID)
.Select(g => new { g, count = g.Count() })
.ToList()
.SelectMany(t => t.g.Select(b => b).Zip(Enumerable.Range(1, t.count), (j, i) => new { j.ItemID, j.Cost, j.SupplierID }));
foreach (var i in q)
{
sb.AppendFormat("ItemId = {0}, Cost = {1}, SupplierId = {2}<hr/>", i.ItemID, i.Cost, i.SupplierID);
}
}
И я пытаюсь добавьте следующее соединение:
.Join(ctx.tblItems, it => it.ItemID, s => s.ItemID, (it, s) => new { it, s })
, но это вызывает неоднозначные ошибки вызова. Есть идеи? Мне нужно добавить еще два внутренних соединения. Я надеюсь получить одно право, а два других будут легко (надеюсь).
вы используете базу данных сначала? –
Да! Я должен был использовать его в настоящее время. – ComfortablyNumb
В зависимости от модели вы должны иметь возможность делать «сумасшедшие» вещи (в Stored Proc land), например: 'x.Address.PrimaryOwner.Name' и Linq будут обрабатывать все необходимые соединения в фоновом режиме. Выражайте результат, а не то, как вы привыкли его получать. – jessehouwing