我想知道是否有任何方法可以使用或不使用他们的Linq提供程序在C#中对DocumentDB实现分页?
场景:我有一个支持分页的API,用户在页面中发送他们想要查看的pageSize,例如:
public virtual async Task<HttpResponseMessage> Get(int? page = DefaultPage, int? pageSize = DefaultPageSize)
然后,我使用这些参数使用以下代码对数据访问层中的数据进行分页:
return query.Skip((pageNumber - 1) * pageSize).Take(pageSize);
"那么问题是什么?",你可能会问.嗯,这种方法和代码在使用EF和SQL时非常有效.问题是我想开始使用DocumentDB,但他们的Linq实现不支持Skip.我见过的唯一例子包括使用TOP关键字或延续令牌,这与我不适合允许用户发送pageNumber和pageSize.
是否有任何实现仍然允许我的用户提供pageNumber并pageSize在请求中?
我们有一个现有的解决方案,包括一个ASP.NET MVC项目和一堆库,所有项目都是针对性的.NET 4.6.1.
将Visual Studio从15.3升级到15.5后,我收到一些编译错误,指出它无法找到System.Net.Http程序集.
类型'HttpResponseMessage'在未引用的程序集中定义.您必须添加对程序集'System.Net.Http,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'的引用.
我阅读了发行说明,但我找不到任何会导致此问题的内容.为什么将Visual Studio从15.3升级到15.5会导致这些错误?
每当我遇到断点并尝试跨过它或进入它时,我就会开始遇到奇怪的错误。
我收到消息:
进行了无法编译的编辑。在修复编译错误之前,无法继续执行。
这些项目编译得很好,当我没有遇到任何断点时,这种情况就不会发生。我使用的是 Visual Studio 2019 16.3.1,这种情况发生在我的所有解决方案中,而不仅仅是一个。我已经尝试过以下方法,但没有任何效果:
我还可以尝试什么?
更新:我遵循@HansPassant 的建议并禁用了“编辑并继续”,这解决了最紧迫的问题,但这似乎是一个棘手的解决方法。
我学过C++,Java,现在我正在学习Ruby.
但对我而言,很难适应ruby中的迭代.
n = 4
arys = Array.new(3, Array.new(n+1, 0))
for i in 1..2
for j in 1..n
arys[i][j] = (i-1)*n+j
end
end
p arys
Run Code Online (Sandbox Code Playgroud)
上述代码的输出如下
Run Code Online (Sandbox Code Playgroud)[[0, 5, 6, 7, 8], [0, 5, 6, 7, 8], [0, 5, 6, 7, 8]]
我认为这就像C中的代码一样
for(int i = 1; i<=2; i++)
for(int j = 1; j<=n; j++)
arys[i][j] = (i-1)*n+j
Run Code Online (Sandbox Code Playgroud)
因此,我预计输出会像
[[0, 0, 0, 0, 0], [0, 1, 2, 3, 4], [0, 5, 6, 7, 8]]
上面两个代码之间的区别是什么?
我觉得这应该很简单,但是这里没有找到说明在MVC中使用dropdownlistfor的指南。
我在用户类的方法中有一个简单的名称列表:
public List<string> getUsersFullNames()
{
return (from da in db.Dat_Account
join ra in db.Ref_Account on da.AccountID equals ra.AccountID
select ra.FirstName + " " + ra.Surname).ToList();
}
Run Code Online (Sandbox Code Playgroud)
我想在下拉列表中显示每个名称,以便可以选择一个名称。
我试图使此工作正常,但没有成功。
我的控制器:
[Authorize]
public ActionResult ManageUserAccounts()
{
ViewBag.UserList = oUsers.getUsersFullNames();
return View();
}
Run Code Online (Sandbox Code Playgroud)
我的模特:
public class ManageUserAccountsViewModel
{
[Display(Name = "Users")]
public List<SelectListItem> UserList { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我的看法:
Html.DropDownListFor(model => model.UserList, new SelectList(oUsers.getUsersFullNames(), "Select User"));
Run Code Online (Sandbox Code Playgroud)
我对asp.net MVC相当陌生,因为我过去一直使用Webforms。有谁知道这是否可行或显示方式吗?
谢谢,