我需要从 Asp.net Core WebApi 应用程序中的自定义组件访问 HttpContext,我找到了此页面(在“从自定义组件访问 HttpContext”点下):
https://github.com/dotnet/AspNetCore.Docs/blob/main/aspnetcore/fundamentals/http-context.md
上面的页面建议使用 IHttpContextAccessor 和builder.Services.AddHttpContextAccessor(); 登记。
此页面似乎已更新(5 个月前),但如果我想使用 IHttpContextAccessor ,那么我必须添加对Microsoft.AspnetCore.Http.Abstraction包的引用。并且这个包已被弃用。我找不到 .Net7 的任何替代包。
我怎样才能正确访问HttpContext?
假设我有通过实体框架获得的以下模型:
public class User{
public string Name {get;set;}
public int Id {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
从用户表中获取所有用户:
IEnumerable<User> users = from u in myDbContext.Users
select u;
Run Code Online (Sandbox Code Playgroud)
在视图中重新查看用户(@model IEnumerable):
@foreach(var item in Model)
{
<tr>@item.Id</tr>
<tr>@item.Name</tr>
}
Run Code Online (Sandbox Code Playgroud)
我的新老板告诉我,这样做是不符合MVC,性能会非常糟糕.我应该做的是使用.ToList()将Controller中的所有USERS资格化.我不确定什么是更好的,因为无论哪种方式用户必须实现,我没有看到任何性能损失.
有没有办法将ImageSource对象转换为字节数组?我有一个绑定到WPF窗口的ImageSource对象,我可以从数据库转换一个字节数组并将其转换为ImageSource,但我不能以相反的方式.
Thx提前.
编辑:我试图将ImageSource转换为BitmapImage,但得到一个null对象.
我有一个会话表,它有一个userId和一个访问主页的嵌套记录(字符串)和一个会话中每次访问的时间戳.基本上一行中的1:m关系:
UserId|SessionEndTime|page1|timestamp1|
|page2|timestamp2|
|page1|timestamp3|
Run Code Online (Sandbox Code Playgroud)
我想知道的是如何让所有在过去6个月内访问过我的页面6x的userId,并且他们应该访问过几页(名称为'%astring%')至少2次.
这是我的方法,但我如何将类似的条件带入count()?:
SELECT UserId, COUNT(UserId) AS visitCounter FROM [oxidation.TestVisits]
WHERE SessionEndTime >= TIMESTAMP_TO_MSEC(DATE_ADD(CURRENT_TIMESTAMP(),-6,"MONTH"))
AND LastUserId != 'none'
GROUP BY 1
HAVING visitCounter>=6
ORDER BY 1 ASC
Run Code Online (Sandbox Code Playgroud)