Linq, udtræk af DTO, minus Articler
Jeg er ved at sættte mig ind i linq, og der er jo ingen bedre måde at gøre det på, end at bruge det. Hvilken har vist sig at give mig et lille problem.Jeg har nogle Articler, som kan vises på en Page.
Man kan ikke have samme article på samme page to gange.
Så, jeg har i min Article Table:
* Article 1, 2, 3, 4, 5 og 6
Og lige så i min PageArticle Table har jeg
* Page 1 som har en
dif til Article: 1, 2, 3 og 4
I min Page table
* Page 1
Jeg skal nu lave et udtræk hvor jeg trækker på tværs af disse tabler, da jeg skal bruge nogle ID og titler, samt have fra trukket Article 5 og 6.
Jeg har haft success med at dele linq sætning i to dele, og dermed får jeg mit result. Men det kan da ikke være rigtig at man ikke kan lave det i en sætning ?
Her er min method:
public IQueryable<Data.DTO.PageArticleListDTO> ArticleListNotAttached(Guid pageGuid)
{
var article_list = (from a in db.Articles
select a).Except<Data.Repositoryes.MSSQL.Article>(
from p in db.Pages
from a in db.Articles
from pa in db.PageArticles
where p.PageGuid == pageGuid &&
p.PageGuid == pa.PageGuid &&
pa.ArticleGuid == a.ArticleGuid
select a);
// pass the articles into a dto
var result_list = (from a in article_list
from pa in db.PageArticles
orderby pa.IndexNo
select new Data.DTO.PageArticleListDTO
{
//Get the current page guid
PageGuid = pageGuid,
ArticleGuid = a.ArticleGuid,
ArticleHeadLine = a.HeadLine,
ArticleIndexNo = pa.IndexNo
}).Distinct<Data.DTO.PageArticleListDTO>();
return result_list;
}
Hvis i skal bruge table metadata så bare skrev det. Og hvis i er i triv om noget så skrev.
// dl
ps. tak for hjælpen.