【发布时间】:2023-01-25 00:48:30
【问题描述】:
如果存在更新行,实现更新行的最佳方法是什么,否则使用实体框架插入新行逻辑?
以下是我到目前为止所做的。我想检查,如果现有员工数据库中的任何字段已更改,则仅更新该记录,或者如果它是新记录,则添加为新行。
Ex- 如果职位名称发生变化则更新职位名称,如果添加了新员工则将其添加为新行
//DbContext
public class DataContext : DbContext
{
public static string providerName = "System.Data.SqlClient";
public DbSet<DisplayAPIDataEmployee>? Employee { get; set; }
protected override void OnConfiguring(Microsoft.EntityFrameworkCore.DbContextOptionsBuilder optionBuilder)
{
optionBuilder.UseSqlServer("Server=;Initial Catalog = ;user id = ;password=");
}
protected override void OnModelCreating(Microsoft.EntityFrameworkCore.ModelBuilder modelBuilder)
{
modelBuilder.Entity<DisplayAPIDataEmployee>().ToTable("Employee", e => e.IsTemporal());
}
}
// Data model
[Table("Employee")]
public class DisplayAPIDataEmployee
{
public DisplayAPIDataEmployee()
{
createdOn = DateTime.Now;
}
public DateTime ?createdOn { get; set; }
public string ?displayName { get; set; }
public string ?shortBirthDate { get; set; }
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public string employee_id { get; set; }
}
【问题讨论】:
-
“什么是最好的实施方式”这将使您的问题立即因“自以为是”而被关闭。您可以选择说“如何……”或“我该如何……”。
-
英孚还是英孚核心? - 可能存在差异。
标签: c# sql entity-framework entity-framework-core