
我在查询这个问题时遇到了问题(我是LINQ的新手,请原谅我),我花了几个小时在网上搜索.在SQL中我只想这样做
SELECT c.Forname, c.Surname cg.Title, g.GroupName
FROM Contact c
inner join ContactGroup cg on cg.ContactID = c.ID
inner join Group g on cg.GroupNameID = g.ID
WHERE g.ID=1;
Run Code Online (Sandbox Code Playgroud)
我曾经尝试过,但失败了,因为:
var result =
from c in cc.Contacts
from cg in c.ContactGroups
from g in cg.Group
where g.ID==1
select new
{
c.Forename,
c.Surname,
cg.Title,
g.GroupName
};
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我我做错了什么或指导我到某个地方获取更多信息吗?
非常感谢.
我不确定我是否正确地处理这个问题。
背景:我有一个控制器操作 GET foo() 作为示例。这个 foo() 需要去调用 bar(),而 bar() 可能需要很长时间。因此,我需要 foo() 在 bar() 完成之前(或无论何时)以“OK”响应。
稍微复杂的是 bar() 需要访问 DBContext 并从 DB 中获取一些数据。在我当前的实现中,当我尝试通过 bar 访问数据库时,我得到了一个“DBContext System.ObjectDisposed”异常。任何想法为什么以及如何解决这个问题?我对线程和任务真的很陌生,所以我可能完全犯了这个错误!
我使用依赖注入在启动时提供数据库上下文
services.AddEntityFrameworkNpgsql()
.AddDbContext<MyDBContext>()
.BuildServiceProvider();
Run Code Online (Sandbox Code Playgroud)
然后我调用 foo() ,它又使用一个新线程调用 bar() (也许我做错了?):
public async Task<string> foo(string msg)
{
Thread x = new Thread(async () =>
{
await bar(msg);
});
x.IsBackground = true;
x.Start();
return "OK.";
}
Run Code Online (Sandbox Code Playgroud)
所以 bar 立即尝试访问 DBContext 以获取一些实体并抛出异常!
未处理的异常:System.ObjectDisposedException:无法访问已处理的对象。此错误的一个常见原因是处理从依赖注入解析的上下文,然后尝试在应用程序的其他地方使用相同的上下文实例。如果您在上下文上调用 Dispose() 或将上下文包装在 using 语句中,则可能会发生这种情况。如果你使用依赖注入,你应该让依赖注入容器来处理上下文实例。对象名称:'MyDBContext'。
如果我从线程中取出 bar() ,那很好,但当然“OK”不会返回,直到 bar 完成其非常长的过程,这是我需要解决的问题。
非常感谢您的指导。
使用正在运行的代码进行编辑,但它仍在等待 Task.Run 在返回“OK”之前完成。(差不多好了?)
public async …Run Code Online (Sandbox Code Playgroud) c# multithreading entity-framework dependency-injection entity-framework-core
使用 C#、.NET Core 3.1
我httpclient通过 in添加一个单例startup.cs:
services.AddHttpClient<IClientLogic, ClientLogicA>().ConfigurePrimaryHttpMessageHandler(() =>
{
var handler = new HttpClientHandler();
var cert= GetCertFromX();
handler.ClientCertificates.Add(cert);
return handler;
});
Run Code Online (Sandbox Code Playgroud)
但是,假设稍后在ClientLogicA课堂上,我想更改证书,我该如何执行此操作,并且更改是否会持续存在以供将来使用 httpclient 单例?
c# dependency-injection dotnet-httpclient asp.net-core httpclientfactory
新手,抱歉。我正在阅读 Entity Framework Core、npgsql 和 PostgreSQL(所有这些都是新的!!)有人可以非常友善地解释或指出我在哪里阅读:我正在尝试使用代码创建一个全新的数据库。
根据我读到的内容,我直接使用 pgadmin 或脚本创建数据库。我想做的是通过代码创建一个数据库(这样用户就可以安装 Postgresql 和我的网站,但不必担心 PostgreSQL 的任何直接 SQL 命令)。
谢谢你!
使用 .NET Core 2.1、C#、Kestrel。
这将是一个奇怪的请求,但是:我有一个需要 HTTPS 的外部 URL 和一个仅是 HTTP 的内部 URL。
我想知道如何将端口 443 上的任何流量重定向到 HTTP 到 HTTPS(保持在同一端口 443);目前它停留在 HTTP 上并死于可怕的死亡。
(注意:端口 888 仍为 HTTP,任何到达那里的流量都需要保持为不安全的 HTTP。)
我在 Program.cs 中设置了它,如下所示:
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseKestrel(options =>
{
options.Listen(IPAddress.Any, 443, opts=>
{
opts.UseHttps("mycert.pfx");
});
options.Listen(IPAddress.Any, 888);
})
.Build();
Run Code Online (Sandbox Code Playgroud)
在启动时,我尝试使用 Configure(IApplicationBuilder app...) app.UseHttpsRedirection();
但这导致两个端口上的所有流量都被重定向到 HTTPS,这对 888 来说是一个问题,因为它没有 SSL 证书!
有什么方法可以根据我指定的端口从 HTTP 重定向到 HTTPS?谢谢