我有一個EF模型有3個表,Artist
,Movie
和Movie_Artist_Job
。 Movie_Artist_Job
只是一個外鍵表:複雜的LINQ到實體查詢
MovieId,ArtistId,JobId.
我試圖讓一個結果是這樣的:
ArtistName1,劇場1
ArtistName1,電影2
Artistname2,劇場1
Artistname2,Movie3
等等
現在我這樣做:
var query = (
from items in _objEntities.Movie_Artist_Job
where items.Artist.FulleName != string.Empty
select items.Artist.FulleName).Distinct<string>();
List<ThumbItem> Items = new List<ThumbItem>();
foreach (string fullName in query)
{
var matching = (
from movie in _objEntities.Movie_Artist_Job
where movie.Artist.FulleName == fullName
select movie.Movie)
.Distinct<Movie>();
if (matching.Count() > 0)
{
foreach (Movie movies in matching)
{
if (movies != null && movies.IsDeleted == false)
{
new ThumbItem(fullName, movies.title);
}
}
}
}
它的工作原理,但它需要年齡...
如何樂觀中任何線索?
非常感謝你的幫助。
你試過分析這個?您可以使用SQL事件探查器找出在封面下執行的查詢。我敢打賭,1.太多的查詢被執行,2.你缺少一些數據庫索引。 – Steven 2012-01-02 12:31:47