我有一个迁移脚本,我想从列中删除默认值,请帮助
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)
但这并没有删除默认值
我想使用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()'返回的执行策略将事务中的所有操作作为一个可重试的单元来执行。
有人可以帮助我如何处理这个问题吗?