ile Çoklu Haritalama: Bu çalışmasına rağmenZarif Aşağıda ben nesnelerin bir sayfalık listesini döndürmek için kullanıyorum kodudur tek dönüş değeri
string query2 = @"
select count(*) as TotalCount from blogposts p where p.Deleted = 0 and p.PublishDate <= @date
select * from (
select p.*,
row_number() over(order by publishdate desc) as rownum
from blogposts as p
where p.Deleted = 0 and p.PublishDate <= @date
) seq
where seq.rownum between @x and @y";
using (var cn = new SqlConnection(connectionString))
{
cn.Open();
using (var multi = cn.QueryMultiple(query2, new { x= lower, y = upper, date = DateTime.UtcNow }))
{
var totalCount = multi.Read<int>().Single();
var posts = multi.Read<PostModel>().ToList();
return new PagedList<PostModel>(posts, page, pageSize, x => totalCount);
}
}
, o iki kez benim kriterlerini tanımlamak zorunda olduğu anlamına gelir Bir kez sayım sorgusu için ve sonuç kümesi sorgusu için bir kez.
string query = @"
select * from (select p.*,
row_number() over(order by publishdate desc) as rownum,
count(*) over() as TotalCount
from blogposts as p) seq
where seq.rownum between @x and @y";
Ancak, ben bu kullanarak Dapper eşlemleyebilir görünmüyor: Daha ziyade dize birbirine bağlanmasına yol çare yerine, sadece bir sorgu yürütebilirsiniz. Birden fazla sonuç olmadığı için yukarıdakiyle aynı yöntemi kullanamıyorum. Çok eşlemeyi kullanarak denedim, ancak bu bir IEnumerable döndürmeyi umuyor.
Aşağıdakilerle nasıl eşleşirim?
public class PostList
{
public IEnumerable<PostModel> Posts;
public int TotalCount { get; set; }
}
Teşekkür
Ben
Geri bildirim için teşekkürler. Sanırım ikili sorguyla uğraşacağım ve işleri kuru tutmak için bazı yardımcılar inşa edeceğim. –