在 Entity Framework Core 中更新数据库表数据的最佳方法是什么?
我们可以在 EF6 上使用哪些改进功能?
最佳答案
要使用 Entity Framework Core 更新实体,这是逻辑过程:
DbContext
类创建实例 Update()
方法在 DbContext
中:Update 方法不会保存数据库中的更改;相反,它为 DbContext 实例中的条目设置状态。
因此,我们可以在保存数据库更改之前调用
Update()
方法。我将假设一些对象定义来回答您的问题:
产品类别定义:
public class Product
{
public int? ProductID { get; set; }
public string ProductName { get; set; }
public string Description { get; set; }
public decimal? UnitPrice { get; set; }
}
DbContext 类定义:public class StoreDbContext : DbContext
{
public DbSet<Product> Products { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer("Your Connection String");
base.OnConfiguring(optionsBuilder);
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Order>(entity =>
{
// Set key for entity
entity.HasKey(p => p.ProductID);
});
base.OnModelCreating(modelBuilder);
}
}
更新实体的逻辑:using (var context = new StoreDbContext())
{
// Retrieve entity by id
// Answer for question #1
var entity = context.Products.FirstOrDefault(item => item.ProductID == id);
// Validate entity is not null
if (entity != null)
{
// Answer for question #2
// Make changes on entity
entity.UnitPrice = 49.99m;
entity.Description = "Collector's edition";
/* If the entry is being tracked, then invoking update API is not needed.
The API only needs to be invoked if the entry was not tracked.
https://www.learnentityframeworkcore.com/dbcontext/modifying-data */
// context.Products.Update(entity);
// Save changes in database
context.SaveChanges();
}
}
关于entity-framework-6 - 如何使用 Entity Framework Core 更新记录?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46657813/