小编Cur*_*ire的帖子

CodeFirst加载1个父项链接到25 000个孩子是缓慢的

我搜索了很多关于我的性能问题并尝试了各种不同的东西,但我似乎无法让它足够快地工作.这是我最简单的问题:

我正在使用实体框架5,并且我希望能够在用户选择父项时延迟加载父项的子实例,因此我不必拉动整个数据库.然而,我一直有延迟加载孩子的性能问题.我认为问题是父和孩子之间的导航属性的连线.我也认为一定是我做错了,因为我相信这是一个简单的案例.

所以我建立了一个程序来测试单个延迟负载以隔离问题.

这是测试:

我创建了一个POCO Parent类和一个Child POCO类.父母有n个孩子,孩子有1个父母.SQL Server数据库中只有1个父项,单个父项只有25 000个子项.我尝试了不同的方法来加载这些数据.每当我在同一个DbContext中加载子项和父项时,都需要很长时间.但是如果我在不同的DbContexts中加载它们,它加载速度非常快.但是,我希望这些实例位于相同的DbContext中.

这是我的测试设置以及复制它所需的一切:

波苏斯:

public class Parent
{
    public int ParentId { get; set; }

    public string Name { get; set; }

    public virtual List<Child> Childs { get; set; }
}

public class Child
{
    public int ChildId { get; set; }

    public int ParentId { get; set; }

    public string Name { get; set; }

    public virtual Parent Parent { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

的DbContext:

public class Entities : DbContext
{
    public …
Run Code Online (Sandbox Code Playgroud)

c# sql-server orm entity-framework ef-code-first

13
推荐指数
2
解决办法
958
查看次数

HttpContext.SignInAsync 之后获取当前 HttpRequest 中的 AuthenticationProperties

我正在使用 ASP.net Core MVC。在登录过程中,在 POST 控制器操作中,我将 HttpContext.SignInAsync 与包含 JWT 访问令牌的 AuthenticationProperties 结合使用。在同一个 HttpRequest 中,我无法重新获取这些属性来获取创建的访问令牌。

...
var claimsPrincipal = CreateClaimsPrincipal("userName");

var accessToken = new AuthenticationToken()
{
    Name = OpenIdConnectParameterNames.AccessToken,
    Value = TOKEN_VALUE
};
AuthenticationToken[] tokens = { accessToken };

var authenticationProperties = new AuthenticationProperties();
authenticationProperties.StoreTokens(tokens);
authenticationProperties.IsPersistent = true;

// Here we sign in the user
await HttpContext.SignInAsync(claimsPrincipal, authenticationProperties);

// Afterwards, we cannot access the access token either from
var tokenValueFromGetTokenAsync = HttpContext.GetTokenAsync(OpenIdConnectParameterNames.AccessToken)
// Or with
var result = await HttpContext.AuthenticateAsync();
var …
Run Code Online (Sandbox Code Playgroud)

asp.net-core

7
推荐指数
2
解决办法
1万
查看次数

具有不同根的ASP.Net核心反向代理

我在代理ASP.NET Core MVC应用程序时遇到问题.

我的应用程序在Kestrel上运行localhost:5000,我的Apache 2.4反向代理正在运行localhost:80.我要代理的所有请求localhost:80/testlocalhost:5000

这是httpd.conf代理的部分:

...
<Location "/test">
   ProxyPass "http://localhost:5000"
   ProxyPassReverse "http://localhost:5000"
</Location>
...
Run Code Online (Sandbox Code Playgroud)

代理工作,但所有链接都被破坏.就像我有一个锚链接到一个以HomeController动作命名的控制器About,从代理返回的链接localhost/Home/About代替localhost/test/Home/About.主机是正确的,它test是缺少的上下文根.

处理这个问题的最佳做法是什么?ASP.NET Core中的配置是否指定了上下文根,以便TagHelpers将其考虑在内?或者它是Apache ProxyPass中重写链接的配置(真的不是这个的忠实粉丝)?

reverse-proxy asp.net-core

5
推荐指数
1
解决办法
3718
查看次数

如何从 Jenkins 中的 Active Choices Plugin groovy 脚本执行 shell

我正在尝试使用 groovy 脚本在活动的 Active Choices 参数中呈现从 shell 获得的信息。我可以使用如下 sh 方法从 jenkins 管道中的 groovy 脚本轻松访问 shell:

node()
{
   sh 'git log ...'
}
Run Code Online (Sandbox Code Playgroud)

但是,当我在 Active options 的 groovy 脚本中尝试此操作时,它会崩溃并执行回退脚本。

是否可以在此上下文中切换到节点并执行 shell 命令?

谢谢您的帮助!

jenkins jenkins-plugins jenkins-groovy jenkins-pipeline

3
推荐指数
1
解决办法
5874
查看次数