有很多关于Asp.Net Core 1.0及其跨平台功能的文章.我知道可以将它部署到Linux,OSX,Windows.我已经阅读了很多一步一步的文章如何做到这一点.但我仍然不知道如何在Azure项目中将其作为Cloud Service Web Role发布.
我有一个庞大的分布式系统,包括Web角色,工作者角色和缓存工作者角色.考虑到Asp.Net Core 1.0,我遇到了下一个问题:
我在ASP.Net MVC 5应用程序中遇到异步控制器问题.我正在使用Entity Framework 6 Code First方法.
我有一个方法
public async Task<ActionResult> Index()
{
using(var context = new MyDbContext())
{
var eventsTask = context.Events
.Where(e => e.Enable)
.ToListAsync();
var countTask = context.Users
.CountAsync();
await Task.WhenAll(eventsTask, countTask);
return View(new ViewModel()
{
Events = eventsTask.Result,
Count = countTask.Result
});
}
}
Run Code Online (Sandbox Code Playgroud)
我这里有两个异步方法.我通过MiniProfiler分别测量了它们.它们需要大约85毫秒.
但是在我的方法中,我使用Task.WhenAll()运行它们.我相信它以异步方式执行Db查询,并且两者都需要大约85-90毫秒.但它需要~170-180.所以我有异步方法同步运行(彼此跟随).
我认为这是因为背景.当我删除上下文查询并使用HttpClient调用许多api方法时,我有一个测试.它需要时间等于更长的时间(3 api调用,每个~500 ms.完全方法需要~600 ms).我相信可以异步执行EF方法.
有谁知道解决方案
我select2在我的probject 中使用插件(最新版本4.0.2)进行自动完成。我发现select2只能应用于选择控件。主要问题是文本输入作为此控件的第一个选项放置(参见下面的 img)。
有什么方法可以放置文本输入而不是选择控件(如 typeahead 插件)?
一些截图(其实你可以在这里试试)
折叠(您只能在此处看到带有选定选项的标准选择 html 控件)
展开(文本输入位置作为选择控件的第一个选项,如果选择折叠则隐藏文本输入)
Typeahead(适用于直接输入文本,在页面始终显示的第一行输入查询文本)
在我的代码中,我有一个像这样的方法
public static IEnumerable<int> GetDiff(int start, int end)
{
while (start < end)
{
yield return start;
start++;
}
yield break; // do we need to call it explicitly?
}
Run Code Online (Sandbox Code Playgroud)
因此,我感兴趣的测试用例是GetDiff(1, 5)和GetDiff(5, 1)。虽然很明显在第一种情况下会发生什么,但是还不清楚第二种情况下如何在没有yield break;after循环的情况下完成它
c# ×2
asp.net-core ×1
asp.net-mvc ×1
asynchronous ×1
azure ×1
jquery ×1
select2 ×1
typeahead ×1