本文整理匯總了C#中SqlBuilder.LeftJoin方法的典型用法代碼示例。如果您正苦於以下問題:C# SqlBuilder.LeftJoin方法的具體用法?C# SqlBuilder.LeftJoin怎麽用?C# SqlBuilder.LeftJoin使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類SqlBuilder
的用法示例。
在下文中一共展示了SqlBuilder.LeftJoin方法的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。
示例1: Index
public ActionResult Index(string sitename, string order_by, string q, int? page, int? pagesize)
{
Site = GetSite(sitename);
if (Site == null)
{
return PageNotFound();
}
QuerySearchCriteria searchCriteria = new QuerySearchCriteria(q);
if (string.IsNullOrEmpty(order_by))
{
if (searchCriteria.IsValid)
order_by = searchCriteria.IsFeatured ? "featured" : "recent";
else
order_by = "featured";
}
ViewData["Site"] = Site;
SelectMenuItem("Queries");
SetHeader(
"All Queries",
new SubHeaderViewData
{
Description = "featured",
Title = "Interesting queries selected by the administrators",
Href = "/" + sitename + "/queries?order_by=featured",
Selected = (order_by == "featured")
},
new SubHeaderViewData
{
Description = "recent",
Title = "Recently saved queries",
Href = "/" + sitename + "/queries?order_by=recent",
Selected = (order_by == "recent")
},
new SubHeaderViewData
{
Description = "favorite",
Title = "Favorite saved queries",
Href = "/" + sitename + "/queries?order_by=favorite",
Selected = (order_by == "favorite")
},
new SubHeaderViewData
{
Description = "popular",
Title = "Saved queries with the most views",
Href = "/" + sitename + "/queries?order_by=popular",
Selected = (order_by == "popular")
},
new SubHeaderViewData
{
Description = "everything",
Title = "All queries recently executed on the site",
Href = "/" + sitename + "/queries?order_by=everything",
Selected = (order_by == "everything")
}
);
pagesize = Math.Max(Math.Min(pagesize ?? 50, 100), 10);
page = Math.Max(page ?? 1, 1);
int start = ((page.Value - 1) * pagesize.Value) + 1;
int finish = page.Value * pagesize.Value;
bool useLatest = true;
var builder = new SqlBuilder();
SqlBuilder.Template pager = null, counter = null;
if (order_by != "everything")
{
pager = builder.AddTemplate(@"
SELECT
*
FROM
(
SELECT
/**select**/, ROW_NUMBER() OVER(/**orderby**/) AS RowNumber
FROM
Metadata metadata
/**join**/
/**leftjoin**/
/**where**/
) AS results
WHERE
RowNumber BETWEEN @start AND @finish
ORDER BY
RowNumber",
new { start = start, finish = finish }
);
counter = builder.AddTemplate("SELECT COUNT(*) FROM Metadata metadata /**join**/ /**leftjoin**/ /**where**/");
builder.Select("metadata.RevisionId AS Id");
builder.Select("metadata.LastActivity AS LastRun");
builder.Join("Queries query ON query.Id = metadata.LastQueryId");
builder.LeftJoin("Users [user] ON metadata.OwnerId = [user].Id");
builder.Where("metadata.Hidden = 0");
if (order_by == "featured" || order_by == "recent")
{
//.........這裏部分代碼省略.........
示例2: Index
public ActionResult Index(string sitename, string order_by, string q, int? page, int? pagesize)
{
Site site;
if (!TryGetSite(sitename, out site))
{
return site == null ? (ActionResult)PageNotFound() : RedirectPermanent(string.Format("/{0}/queries",
site.TinyName.ToLower()
));
}
Site = site;
QuerySearchCriteria searchCriteria = new QuerySearchCriteria(q);
if (string.IsNullOrEmpty(order_by))
{
if (searchCriteria.IsValid)
{
order_by = searchCriteria.IsFeatured ? "featured" : "recent";
}
else
{
order_by = CurrentUser.DefaultQuerySort ?? "featured";
}
}
if (!searchCriteria.IsValid)
{
CurrentUser.DefaultQuerySort = order_by;
}
ViewData["Site"] = Site;
SelectMenuItem("Queries");
var pagesizeProvided = pagesize.HasValue;
if (!Current.User.IsAnonymous && !pagesizeProvided)
{
pagesize = Current.User.DefaultQueryPageSize;
}
pagesize = Math.Max(Math.Min(pagesize ?? 50, 100), 10);
page = Math.Max(page ?? 1, 1);
if (!Current.User.IsAnonymous)
{
Current.User.DefaultQueryPageSize = pagesize;
}
int start = ((page.Value - 1) * pagesize.Value) + 1;
int finish = page.Value * pagesize.Value;
var builder = new SqlBuilder();
SqlBuilder.Template pager = null, counter = null;
if (order_by != "everything")
{
pager = builder.AddTemplate(@"
SELECT
*
FROM
(
SELECT
/**select**/, ROW_NUMBER() OVER(/**orderby**/) AS RowNumber
FROM
QuerySets qs
/**join**/
/**leftjoin**/
/**where**/
) AS results
WHERE
RowNumber BETWEEN @start AND @finish
ORDER BY
RowNumber",
new { start = start, finish = finish }
);
counter = builder.AddTemplate("SELECT COUNT(*) FROM QuerySets qs /**join**/ /**leftjoin**/ /**where**/");
builder.Select("qs.Id as QuerySetId");
builder.Select("qs.LastActivity AS LastRun");
builder.Join("Revisions r ON r.Id = qs.CurrentRevisionId");
builder.Join("Queries q ON q.Id = r.QueryId");
builder.LeftJoin("Users u ON qs.OwnerId = u.Id");
builder.Where("qs.Hidden = 0");
builder.Where("qs.Title is not null");
builder.Where("qs.Title <> ''");
if (order_by == "featured" || order_by == "recent")
{
if (order_by == "featured")
{
builder.Where("qs.Featured = 1");
builder.OrderBy("qs.Votes DESC");
}
builder.OrderBy("qs.LastActivity DESC");
}
else
{
int threshold = 0;
//.........這裏部分代碼省略.........
示例3: Show
//.........這裏部分代碼省略.........
builder.Select("execution.LastRun");
builder.Select("site.Name AS SiteName");
builder.Join("QueryExecutions execution ON execution.QueryId = query.Id");
builder.Join("Sites site ON site.Id = execution.SiteId");
builder.Join("Revisions ON Revisions.Id = execution.RevisionId AND execution.UserId = @user", new { user = id });
builder.Join(@"
Metadata metadata ON
(
metadata.RevisionId = Revisions.RootId AND
metadata.OwnerId = Revisions.OwnerId
) OR (
metadata.RevisionId = Revisions.Id AND
metadata.OwnerId = Revisions.OwnerId AND
Revisions.RootId IS NULL
) OR (
metadata.RevisionId = Revisions.Id AND
metadata.OwnerId IS NULL AND
Revisions.OwnerId IS NULL
)"
);
builder.OrderBy("execution.LastRun DESC");
message = user.Id == CurrentUser.Id ?
"You have never ran any queries" : "No queries ran recently";
}
else
{
builder.Select("metadata.RevisionId AS Id");
builder.Select("metadata.LastActivity AS LastRun");
builder.Join("Metadata metadata on metadata.LastQueryId = query.Id");
if (order_by == "favorite")
{
builder.Join(@"
Votes ON
Votes.RootId = metadata.RevisionId AND
(
Votes.OwnerId = metadata.OwnerId OR
(Votes.OwnerId IS NULL AND metadata.OwnerID IS NULL)
) AND
Votes.UserId = @user AND
Votes.VoteTypeId = @vote",
new { user = id, vote = (int)VoteType.Favorite }
);
builder.OrderBy("metadata.Votes DESC");
useLatest = true;
message = user.Id == CurrentUser.Id ?
"You have no favorite queries, click the star icon on a query to favorite it" : "No favorites";
} else {
builder.Where("metadata.OwnerId = @user", new { user = id });
builder.Where("metadata.Hidden = 0");
builder.OrderBy("metadata.LastActivity DESC");
message = user.Id == CurrentUser.Id ?
"You haven't edited any queries" : "No queries";
}
}
builder.Select("[user].Id as CreatorId");
builder.Select("[user].Login as CreatorLogin");
builder.Select("metadata.Title AS Name");
builder.Select("metadata.[Description] AS [Description]");
builder.Select("metadata.Votes AS FavoriteCount");
builder.Select("metadata.Views AS Views");
builder.Select("query.QueryBody AS [SQL]");
builder.LeftJoin("Users [user] ON [user].Id = metadata.OwnerId");
var queries = Current.DB.Query<QueryExecutionViewData>(
pager.RawSql,
pager.Parameters
).Select<QueryExecutionViewData, QueryExecutionViewData>(
(view) =>
{
view.UseLatestLink = useLatest;
view.SiteName = (view.SiteName ?? Site.Name).ToLower();
return view;
}
);
int total = Current.DB.Query<int>(counter.RawSql, counter.Parameters).First();
string href = string.Format("/users/{0}/{1}", user.Id, HtmlUtilities.URLFriendly(user.Login)) + "?order_by=" + order_by;
ViewData["Queries"] = queries;
ViewData["PageNumbers"] = new PageNumber(
href + "&page=-1",
Convert.ToInt32(Math.Ceiling(total / (decimal)pagesize)),
pagesize.Value,
page.Value - 1,
"pager"
);
if (!queries.Any())
{
ViewData["EmptyMessage"] = message;
}
return View(user);
}
示例4: Show
//.........這裏部分代碼省略.........
string message;
var builder = new SqlBuilder();
var pager = builder.AddTemplate(@"
SELECT
*
FROM
(
SELECT
/**select**/, ROW_NUMBER() OVER(/**orderby**/) AS RowNumber
FROM
Queries q
/**join**/
/**leftjoin**/
/**where**/
) AS results
WHERE
RowNumber BETWEEN @start AND @finish
ORDER BY
RowNumber",
new { start = start, finish = finish }
);
var counter = builder.AddTemplate("SELECT COUNT(*) FROM Queries q /**join**/ /**leftjoin**/ /**where**/");
if (order_by == "recent")
{
builder.Select("re.RevisionId AS Id");
builder.Select("re.LastRun");
builder.Select("s.Name AS SiteName");
builder.Where("re.UserId = @user", new { user = id });
builder.Join("Revisions r ON r.QueryId = q.Id");
builder.Join("RevisionExecutions re ON re.RevisionId = r.Id");
builder.Join("Sites s ON s.Id = re.SiteId");
builder.Join(@"QuerySets qs ON qs.Id = r.OriginalQuerySetId");
builder.OrderBy("re.LastRun DESC");
message = user.Id == CurrentUser.Id ?
"You have never ran any queries" : "No queries ran recently";
}
else
{
builder.Select("qs.CurrentRevisionId AS Id");
builder.Select("qs.LastActivity AS LastRun");
builder.Join("Revisions r on r.QueryId = q.Id");
builder.Join("QuerySets qs on qs.CurrentRevisionId = r.Id");
if (order_by == "favorite")
{
builder.Join(@"
Votes v ON
v.QuerySetId = qs.Id AND
v.UserId = @user AND
v.VoteTypeId = @vote",
new { user = id, vote = (int)VoteType.Favorite }
);
builder.OrderBy("v.Id DESC");
message = user.Id == CurrentUser.Id ?
"You have no favorite queries, click the star icon on a query to favorite it" : "No favorites";
} else {
builder.Where("qs.OwnerId = @user", new { user = id });
builder.Where("qs.Hidden = 0");
builder.OrderBy("qs.LastActivity DESC");
message = user.Id == CurrentUser.Id ?
"You haven't edited any queries" : "No queries";
}
}
builder.Select("qs.Id as QuerySetId");
builder.Select("u.Id as CreatorId");
builder.Select("u.Login as CreatorLogin");
builder.Select("qs.Title AS Name");
builder.Select("qs.[Description] AS [Description]");
builder.Select("qs.Votes AS FavoriteCount");
builder.Select("qs.Views AS Views");
builder.Select("q.QueryBody AS [SQL]");
builder.LeftJoin("Users u ON u.Id = qs.OwnerId");
var queries = Current.DB.Query<QueryExecutionViewData>(
pager.RawSql,
pager.Parameters
).Select<QueryExecutionViewData, QueryExecutionViewData>(
(view) =>
{
view.SiteName = (view.SiteName ?? Site.Name).ToLower();
return view;
}
);
int total = Current.DB.Query<int>(counter.RawSql, counter.Parameters).First();
ViewData["Href"] = string.Format("/users/{0}/{1}", user.Id, HtmlUtilities.URLFriendly(user.Login)) + "?order_by=" + profileTabs.Selected;
ViewData["Queries"] = new PagedList<QueryExecutionViewData>(queries, page.Value, pagesize.Value, false, total);
if (!queries.Any())
{
ViewData["EmptyMessage"] = message;
}
return View(user);
}