.container {
margin: 0 auto;
padding: 40px;
width: 80%;
color: #333;
background: #419be0;
}
.slick-slide {
text-align: center;
color: #419be0;
background: white;
margin: 10px;
}
<div class='container'>
<div class='single-item'>
<div><h3>1</h3></div>
<div><h3>2</h3></div>
<div><h3>3</h3></div>
<div><h3>4</h3></div>
<div><h3>5</h3></div>
<div><h3>6</h3></div>
</div>
</div>
var windowWidth = $(window).width(),
containerWidth = $('.container').width(),
widthToPadding = ((windowWidth - containerWidth) - 30 ) / 2;
var pxc=widthToPadding+"px";
console.log(pxc);
$(".single-item").slick({
dots: true,
slidesToShow: 3,
centerMode: true,
slidesToShow: 1,
arrows: false,
centerPadding:pxc,
});
Вот решение, которое я предложил. Обратите внимание, что это близко к решению, предложенному @OdeToCode (но в синтаксисе VB) с одним существенным различием:
Dim temp = _
(From t In context.MyTable _
Group t.f1, t.f2, t.f3 By t.title Into g = Group _
Select title, g).ToList
Dim results = _
From t In temp _
Select t.title, _
f1_count = t.g.Count(Function(x) If(x.f1, False)), _
f2_count = t.g.Count(Function(x) If(x.f2, False)), _
f3_count = t.g.Count(Function(x) If(x.f3, False))
Первый запрос делает группировку, но ToList получает сгруппированные данные как есть из сервера. Устранение подсчета здесь мешает получающемуся SQL-оператору производить, ПОДВЫБИРАЕТ для каждого количества. Я делаю подсчет во втором запросе локально.
Это работает, так как я знаю, что первый запрос возвратит управляемое количество строк. Если бы это возвращало миллионы строк, то я должен был бы, вероятно, войти в другое направление.
Если Вы хотите придерживаться запроса LINQ и использовать анонимный тип, запрос мог быть похожим:
var query =
from r in ctx.myTable
group r by r.title into rgroup
select new
{
Title = rgroup.Key,
F1Count = rgroup.Count(rg => rg.f1 == true),
F2Count = rgroup.Count(rg => rg.f2 == true),
F3Count = rgroup.Count(rg => rg.f3 == true)
};
Прием должен распознать, что Вы хотите считать количество истинных полей (это отображается как nullable bool), который можно сделать с оператором Count и предикатом. Больше информации об операторе группы LINQ здесь: Стандартные Операторы LINQ
Я думаю, что это - то, где LINQ падает. Если Вы хотите эффективное использование SQL, если Вы хотите хороший код, используйте LINQ.
Вы могли всегда выполнять запрос непосредственно, так как Вы уже знаете SQL.
class TitleCount {
public string Title;
public int Count1;
public int Count2;
public int Count3;
}
DataContext dc = new DataContext("Connection string to db");
IEnumerable<TitleCount> query = dc.ExecuteQuery<TitleCount>(
@"SELECT title,
COUNT(f1) as Count1,
COUNT(f2) as Count2,
COUNT(f3) as Count3
FROM myTable GROUP BY title");