我们希望使用 Dependabot 来了解更新的依赖项,但我们不希望 Dependabot 自行创建拉取请求,也不希望自动构建(我们使用 GitHub 进行代码,使用 Azure DevOps 进行构建)。
文档( https://docs.github.com/en/code-security/dependabot/working-with-dependabot/automating-dependabot-with-github-actions )中没有明确的提示来执行此操作。我们已经尝试排除 dependentabot 分支,但这在任何形式下都不起作用。
# Azure DevOps Excludes
pr:
autoCancel: "true"
branches:
exclude:
- dependabot/*
- dependabot/**/*
Run Code Online (Sandbox Code Playgroud)
我们还在 Stack Overflow 上发现了将限制设置为 0 的提示,但仍然创建了 PR
version: 2
updates:
- directory: "/"
open-pull-requests-limit: 0
Run Code Online (Sandbox Code Playgroud)
是否有可能使用 Dependabot 作为信息源?
对于集成测试,我想加载自定义XML配置.此XML位于集成测试项目内的文件夹中.
对于进一步的目标,我想使用新的DNX项目.我知道他们还在预览中.
本地测试工作正常.现在的问题是,我不能使用相对路径,因为测试系统当前目录信息不是我项目的项目文件夹.与AppVeyor相同的问题.
构建代理程序在另一个文件夹中启动,因此相对路径信息错误并失败.这里不要惊讶.
我试图用这个片段来解决这个问题:
public abstract class IntegrationTestBase
{
public static string CurrentPath()
{
string codeBase = typeof (IntegrationTestBase).Assembly.Location;
UriBuilder uri = new UriBuilder( codeBase );
string path = Uri.UnescapeDataString( uri.Path );
return Path.GetDirectoryName( path );
}
}
Run Code Online (Sandbox Code Playgroud)
这里的问题是:由于新的DNX Runtime不返回我的项目和/或程序集的位置,它返回运行时文件夹:
C:/Users/ben/.dnx/runtimes/dnx-clr-win-x86.1.0.0-rc1-update1/bin/Microsoft.Dnx.Loader.dll
Run Code Online (Sandbox Code Playgroud)
如果我要求CodeBase或Executing/CallingAssembly,则行为相同.
使用"旧的"简单C#项目和MsTest,我得到了预期的路径.
Environment.CurrentDirectory 在AppVeyor上不起作用,因为进程未在项目文件夹中启动,然后此命令返回另一个路径(已启动项目的路径).
在这里使用相对路径的正确方法是什么?
我正在整合查询以最大限度地减少 SQL 往返次数。对于 Skip Take 的结果,AutoMapper 的 ProjectTo 方法似乎存在问题。
作品:
var totalUsers = await _dbContext.UserAccounts.CountAsync(cancellationToken);
var users = await _dbContext.UserAccounts
.Skip(skip).Take(take)
.ProjectTo<UserProjection>(_mapper.ConfigurationProvider)
.ToListAsync(cancellationToken);
Run Code Online (Sandbox Code Playgroud)
抛出 NullReferenceException:
// query
var query = from _ in _dbContext.UserAccounts
select new
{
TotalUserCount = _dbContext.UserAccounts.Count(),
Users = _dbContext.UserAccounts
.Skip(skip).Take(take)
.ProjectTo<UserProjection>(_mapper.ConfigurationProvider)
.ToList()
};
var result = await query.FirstOrDefaultAsync(cancellationToken);
Run Code Online (Sandbox Code Playgroud)
堆:
NullReferenceException:未将对象引用设置为对象的实例。Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression.AddCollectionProjection(ShapedQueryExpressionShapedQueryExpression, INavigation navigation, Type elementType) Microsoft.EntityFrameworkCore.Query.Internal.RelationalProjectionBindingExpressionVisitor.Visit(Expression expression) Microsoft.EntityFrameworkCore.Query.Internal.RelationalExpressionExpressionNewsExpressionVisition(New) ) System.Linq.Expressions.NewExpression.Accept(ExpressionVisitorvisitor) Microsoft.EntityFrameworkCore.Query.Internal.RelationalProjectionBindingExpressionVisitor.Visit(Expression expression) Microsoft.EntityFrameworkCore.Query.Internal.RelationalProjectionBindingExpressionVisitor.Translate(SelectExpression selectExpression,
该问题尤其在与 Skip and Take 结合使用时出现。
知道这可能是什么原因吗?或者这是 AutoMapper 的错误?
该代码示例取自具有当前 AutoMapper 版本的 ASP.NET Core …
我们可以查看支持票证列表。
如果当前登录的用户已回复支持票证,我们现在需要显示附加图标。这意味着我们必须向投影添加额外的属性,我们不能只过滤当前用户的列表。
现在我们的想法是将这个附加属性与配置文件映射。但我们不知道如何将当前用户 ID 传递到配置文件。
在它可能看起来像这样
public class SupportTicketProjectionProfile : AutoMapper.Profile
{
public SupportTicketProjectionProfile()
{
CreateMap<SupportTicketEntity, SupportTicketProjection>()
.ForMember(p => p.CurrentUserHasReplied,
opt => opt.MapFrom(e=>e.Editors.Any(editor=> editor.Id == **passedIdValue**))
Run Code Online (Sandbox Code Playgroud)
但是如何传递userId呢?
我们发现我们可以将 Dictionary<string, object> 传递给 ProjectTo 方法。机器人我们找不到任何文档如何在 AutoMapper 配置文件中访问此字典。
感谢您的任何提示。
我们将基于Dapper的应用程序移植到.NET Core,我们的事务代码存在问题.
我们使用"动作"来执行东西
public Action<IDbConnection> CreateAction(string statement, object values)
{
return (dbConnection) => dbConnection.Execute(statement, values);
}
Run Code Online (Sandbox Code Playgroud)
我们使用方法来执行这些操作
public void Execute(IEnumerable<Action<IDbConnection>> actions)
{
using (IDbConnection connection = OpenConnection())
using (IDbTransaction transaction = connection.BeginTransaction())
{
try
{
foreach (var action in actions)
{
action(transaction.Connection);
}
transaction.Commit();
}
catch
{
transaction.Rollback();
throw;
}
}
}
Run Code Online (Sandbox Code Playgroud)
这适用于.NET Framework和Dapper 1.42,但在使用Dapper 1.50.2的.NET Core上失败.
System.InvalidOperationException:'ExecuteNonQuery要求命令在分配给命令的连接处于挂起的本地事务中时具有事务.该命令的Transaction属性尚未初始化.
如果我们使用它删除交易也可以.
需要改变什么来使它工作?
automapper ×2
.net-core ×1
appveyor ×1
asp.net ×1
azure-devops ×1
c# ×1
dapper ×1
dependabot ×1
dnx ×1
github ×1
xunit ×1