gpt4 book ai didi

entity-framework-core - 只读表/实体 EF Core 3.0

转载 作者:行者123 更新时间:2023-12-03 17:11:11 28 4
gpt4 key购买 nike

是否可以在 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();
我也想避免这种情况。

最佳答案

我通过强制将此类表生成为 View 来解决此要求。
前任:

modelBuilder.Entity<SampleHistory>(eb =>
{
eb.HasNoKey();
eb.ToView("Sample_History");
.
.
.
});
如果您尝试对此类表执行插入、更新或删除操作,EF 将显示无效操作异常。

关于entity-framework-core - 只读表/实体 EF Core 3.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63244890/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com