【发布时间】:2020-08-04 10:23:19
【问题描述】:
是否可以在 EF Core 3.0 中创建表/实体?基本上我有历史表,我想在其上限制插入/更新/删除命令。
我已经通过更改尝试了 AsNoTracking:
public DbSet<SampleHistory> SampleHistories { get; set; }
到:
public IQueryable<SampleHistory> SampleHistories { get {return Set<SampleHistory>).AsNoTracking<SampleHistory>(); } }
如果我做这样的事情(没有任何东西保存在数据库中),它工作正常:
var v = DbContext.SampleHistories.FirstOrDefault(e => e.HistoryId == 1);
v.Field1 = $"Test{DateTime.Now.ToLongTimeString()}";
DbContext.SaveChanges();
但如果我在保存之前添加更新语句,我会看到数据库中的记录正在更新:
var v = DbContext.SampleHistories.FirstOrDefault(e => e.HistoryId == 1);
v.Field1 = $"Test{DateTime.Now.ToLongTimeString()}";
DbContext.Update(v);
DbContext.SaveChanges();
我也想避免这种情况。
【问题讨论】:
标签: entity-framework-core ef-core-3.0