小编Har*_*ngi的帖子

如何从迁移脚本中删除默认约束

我有一个迁移脚本,我想从列中删除默认值,请帮助

 migrationBuilder.AddColumn<bool>(
              name: "IsExternalLink",
              table: "Link",
              nullable: false,
              defaultValue: 0);
Run Code Online (Sandbox Code Playgroud)

我想更改该列并删除默认值。

我尝试像这样改变列:

  migrationBuilder.AlterColumn<bool>(
                  name: "IsExternalLink",
                  table: "Link");
Run Code Online (Sandbox Code Playgroud)

但这并没有删除默认值

c# entity-framework entity-framework-core

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

使用 System.Transaction 如何更新实体框架中的多行

我想使用System.Transactions和更新多行。我的数据库是使用实体框架连接的。

下面是我试过的代码,但它抛出了一个错误:

public  void Update(List<PortfolioCompanyLinkModel> record)
{
    var transaction = _context.Database.BeginTransaction();

    try
    {
        foreach (var item in record)
        {
            var portfolioCompanyLink = _context.PortfolioCompanyLink.FirstOrDefault(p => p.Id == item.Id);
            portfolioCompanyLink.ModifiedBy = _loggedInUser;
            portfolioCompanyLink.ModifiedOn = DateTime.UtcNow;
            portfolioCompanyLink.URL = item.URL;

            _context.SaveChanges();
            //_context.PortfolioCompanyLink.Update(portfolioCompanyLink);
        }

        transaction.Commit();
    }
    catch(Exception ex) 
    {
        transaction.Rollback();
    }
}
Run Code Online (Sandbox Code Playgroud)

错误:

配置的执行策略“SqlServerRetryingExecutionStrategy”不支持用户发起的事务。使用'DbContext.Database.CreateExecutionStrategy()'返回的执行策略将事务中的所有操作作为一个可重试的单元来执行。

有人可以帮助我如何处理这个问题吗?

c# sql-server entity-framework asp.net-core

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