可能是我错过了一些非常明显的东西。但是我一直无法找到一种方法来向 EF Core 中的现有表/模型添加新列。
这是我正在关注的文档:https : //docs.microsoft.com/en-us/ef/core/miscellaneous/cli/powershell
这就是我到目前为止所做的:
那么如何更新一个已经存在的表格呢?我能想到的两种方法是:
但我觉得应该有更好的方法来做到这一点。
我第一次尝试在 MVC 应用程序中使用工作单元模式,该应用程序已经遵循实体框架 DbContext 的存储库模式。我的问题是关于调用 Savechanges() 方法的最佳位置/实践。
我看到了两种可能的方法:
对于第一种方法,我们必须对注入到 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) 下面,我有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)