我正在考虑为我的 ASP.NET 4.5 网站使用 Simple.Data Micro-ORM。但是,在决定是否使用它之前,我需要知道一些事情。
让我们以下面的 Join 查询为例:
var albums = db.Albums.FindAllByGenreId(1)
.Select(
db.Albums.Title,
db.Albums.Genre.Name);
此查询将被翻译为:
select
[dbo].[Albums].[Title],
[dbo].[Genres].[Name]
from [dbo].[Albums]
LEFT JOIN [dbo].[Genres] ON ([dbo].[Genres].[GenreId] = [dbo].[Albums].[GenreId])
WHERE [dbo].[Albums].[GenreId] = @p1
@p1 (Int32) = 1
让我们假设“流派”表是一个包含数千甚至数百万行的表。我认为在 JOIN 发生后过滤数据可能非常低效,这就是该查询在 Simple.Date 中翻译的内容。
过滤Generes表中的数据会更好,这意味着首先创建一个SELECT语句并与该过滤表进行JOIN?
提前过滤数据不是更好吗?
此外,是否可以选择使用 Simple.Data 进行这种类型的复杂(在过滤表上加入)查询。
需要您的答案才能知道是继续使用 Simple.Data,还是将其抑制为支持另一个微 ORM。