У меня есть 3 таблицы, которые мне нужно использовать:
бренд-
BrandID
Имя
помощь при запросе Linq в три таблицы
BrandSource-
BrandID
SourceId
Source-
SourceID
SourceName
Таким образом, у меня много-много отношений с BrandSource, являющимся моей промежуточной таблицей. У меня есть столбец Brand, который отображается в таблице, и я создал новый столбец для исходного изображения. По сути, если есть 5 источников для одного бренда, мне нужно, чтобы он показывал одну строку для бренда и 5 различных исходных изображений в новом столбце, который я сделал (5 изображений в одной ячейке).
Поскольку я присоединился к трем таблицам, очевидно, что в таблице BrandSource имеется 5 строк и отображает 5 строк каждой марки с единственным исходным изображением в ячейке.
Я уверен, что я мог бы выбрать различные бренды, но это все еще не решает мою проблему, как я могу получить все исходные изображения для каждой марки, чтобы они отображались в одной и той же ячейке.
Вот мой код linq: (Как вы можете видеть, здесь есть некоторая информация, которую я недавно оставил для краткости).
var join = from b in db.Brands
join bs in db.Brands_Sources on b.BrandID equals bs.BrandID
join sb in db.Sources on bs.SourceID equals sb.SourceID
select new { Brand = b, source = sb.Image, c = b.Description.Length < 204 ? b.Description : b.Description.Substring(0, 204) + "..." };
А вот как я использую его:
foreach (var result in join)
{
bool a = result.Brand.Active;
string chk = string.Empty;
if (a == true)
chk = "checked='checked'";
else
chk = "";
resultSpan.InnerHtml += "<tr><td><input type='checkbox' " + chk + "></td><td width='1%'><img width='50px' src='" + result.Brand.Image + "'</img></td>" +
"<td>" + result.Brand.Name + "</td><td width='60%'>" + result.c + "</td><td><img src='"+result.source+"'></img></td><td>" + result.Brand.DateCreated + "</td><td>" + result.Brand.DateModified + "</td></tr>";
}
Это именно то, что я искал. Спасибо. – 2010-12-04 22:44:50