小编Bon*_*ney的帖子

在 Entity Framework Core 中使用 Update-Database 添加新列

可能是我错过了一些非常明显的东西。但是我一直无法找到一种方法来向 EF Core 中的现有表/模型添加新列。

这是我正在关注的文档:https : //docs.microsoft.com/en-us/ef/core/miscellaneous/cli/powershell

这就是我到目前为止所做的:

  1. 使用以下命令创建迁移:“Add-Migration -Name CodingSoldierDbContextMigration -OutputDir Migrations -Context CodingSoldierDbContext”
  2. 使用以下命令更新数据库:“Update-Database -Migration CodingSoldierDbContextMigration -Context CodingSoldierDbContext”。在数据库中创建了表。
  3. 现在我需要向现有表中添加一个新列。我将该列添加到 .cs 文件中的模型中。我删除了现有的迁移:“Remove-Migration -Force -Context CodingSoldierDbContext”
  4. 现在我重新运行步骤 1 和 2 中的命令。添加迁移工作并创建迁移。但是 Update-Database 失败并显示错误:“数据库中已经有一个名为‘AspNetRoles’的对象。” 这意味着该表已经存在于数据库中,这是有道理的。

那么如何更新一个已经存在的表格呢?我能想到的两种方法是:

  1. 删除数据库。创建迁移和更新数据库。但所有数据都将消失。
  2. 在模型中添加列。使用 SQL 脚本手动更新表以添加新列。

但我觉得应该有更好的方法来做到这一点。

c# database entity-framework entity-framework-core

6
推荐指数
1
解决办法
2万
查看次数

UnitOfWork 或 Repository 中的 DBContext SaveChanges 方法?哪个更好?

我第一次尝试在 MVC 应用程序中使用工作单元模式,该应用程序已经遵循实体框架 DbContext 的存储库模式。我的问题是关于调用 Savechanges() 方法的最佳位置/实践。

我看到了两种可能的方法:

  1. 在 Unit Of Work 类中调用它(Asp.Net 站点中提到的方法)
  2. 调用 Repository 类

对于第一种方法,我们必须对注入到 Controller 中的 UnitOfWork 实例调用 SaveChanges()。对于第二种方法,SaveChanges() 将封装在 Repository 中,Controller 需要做的就是调用 Repository 中的方法(由 UnitOfWork 提供),并且将在 Repository 中调用 SaveChanges()。

方法一:

 public class PostsController : Controller
 {
    private readonly IRepository<Post> _postRepository;
    private readonly IRepository<Category> _categoryRepository;
    private readonly IUnitOfWork _uow;
    public PostsController(IUnitOfWork uow)
    {
        if (uow == null)
            throw new ArgumentNullException(nameof(uow));

        _uow = uow;
        _postRepository = uow.Repository<Post>();
        _categoryRepository = uow.Repository<Category>();
    }

    [HttpPost]
    public ActionResult Create(Post …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc entity-framework repository-pattern

3
推荐指数
1
解决办法
4777
查看次数

扩频运算符会影响性能吗?

下面,我有2种方法来构造对象数组。

方法1:

const employees = [
  {
    company: 'ABC',
    country: 'IN',
    zip: 123,
    employeeId: 123,
    employeeName: 'p'
  },
  {
    company: 'ABC',
    country: 'IN',
    zip: 123,
    employeeId: 456,
    employeeName: 'q'
  },
  {
    company: 'ABC',
    country: 'IN',
    zip: 123,
    employeeId: 789,
    employeeName: 'r'
  }
];
Run Code Online (Sandbox Code Playgroud)

方法2(使用传播算子):

const commonParams = {
  company: 'ABC',
  country: 'IN',
  zip: 123
};

const employees = [
  {
    ...commonParams,
    employeeId: 123,
    employeeName: 'p'
  },
  {
    ...commonParams,
    employeeId: 456,
    employeeName: 'q'
  },
  {
    ...commonParams,
    employeeId: 789,
    employeeName: 'r'
  } …
Run Code Online (Sandbox Code Playgroud)

javascript arrays node.js

3
推荐指数
4
解决办法
1059
查看次数