我有一个具有它签名的EF上下文
public class MyContext : DbContext, IDbContext
{
}
Run Code Online (Sandbox Code Playgroud)
当我将它添加到服务时,我使用它
services.AddDbContext<MyContext>(op =>
{
op.UseSqlServer(configuration.GetConnectionString("DefaultConnection"));
});
Run Code Online (Sandbox Code Playgroud)
但是当我注入IDbContext时会导致问题,就像这样
services.AddScoped(typeof(IDbContext), typeof(MyContext));
Run Code Online (Sandbox Code Playgroud)
因为它复制了我的DbContext,而且每个请求应该只有一个.
我该如何解决?
我在asp.net核心创建了一个应用程序并创建了一个dockerfile来生成本地图像并运行它.
FROM microsoft/dotnet:latest
COPY . /app
WORKDIR /app
RUN ["dotnet", "restore"]
RUN ["dotnet", "build"]
EXPOSE 5000/tcp
ENTRYPOINT ["dotnet", "run", "--server.urls", "http://0.0.0.0:5000"]
Run Code Online (Sandbox Code Playgroud)
然后,我使用以下命令构建了我的图像
docker build -t jedidocker/first .
Run Code Online (Sandbox Code Playgroud)
然后,我使用以下命令创建了一个容器
docker run -t -d -p 5000:5000 jedidocker/first
Run Code Online (Sandbox Code Playgroud)
但是当我将以下url运行到我的主机浏览器中时
http://localhost:5000/
Run Code Online (Sandbox Code Playgroud)
我有一个 ERR_EMPTY_RESPONSE
这是网络问题吗?我该如何解决?
PS:我的Windows版本是10.0.10586
我正在使用密码授予流程和 asp.net Identity。
我想在每次执行登录时杀死用户的所有刷新令牌。即使他使用不同的设备(例如其他电脑或智能手机)登录,我也需要它来终止其“会话”。
那么,我该怎么做呢?
我可以只做一个UserManager.UpdateSecurityStampAsync(user.Id);
,还是我需要别的东西?
非常感谢你的帮助!
我一直在使用LinqKit来创建通用查询.
一直困扰我的一件事是你总是要测试过滤器中发送的值是否有效.
例如:假设我有一个字符串过滤器.条件可以是Equal,StartsWith,EndsWith和Contains.
我的方法看起来像这样:
public List<MyModel> Get(MyModelFilter filter)
{
if (string.IsNullOrEmpty(filter.prop))
{
predicate = predicate.And(_myModel => myModel.Prop.Contains(filter.prop));
}
// Plus a giant amount of if's with multiple filters
return DbSet.AsExpandable()
.Where(predicate)
.ToList();
}
Run Code Online (Sandbox Code Playgroud)
为了结束这一堆If,我决定创建一个通用方法来将过滤器应用于属性.我的想法是传递将应用过滤器的属性和过滤器定义,并封装表达式创建逻辑
它将是这种类型的东西:
public List<MyModel> Get(MyModelFilter filter)
{
predicate = predicate.And(_myModel => myModel.Prop, filter.PropFilterDefinition);
// Goodnye If's, Only others filter impl
return DbSet.AsExpandable()
.Where(predicate)
.ToList();
}
Run Code Online (Sandbox Code Playgroud)
为此,我创建了一些扩展方法来处理这个问题
public static Expression<Func<TPredicate, bool>> And<TPredicate>(
this ExpressionStarter<TPredicate> predicate,
Func<TPredicate, string> property, StringFilterDefinition filter,
bool ignoreNull = true)
{
if …
Run Code Online (Sandbox Code Playgroud)