gpt4 book ai didi

asp.net-core - 如何避免在插入 EF Core 后选择插入的实体?

转载 作者:行者123 更新时间:2023-12-04 04:27:56 26 4
gpt4 key购买 nike

我在 Azure DB 上有很多仅用于日志目的的插入,并且我发现现在大部分 DTU 使用都被此日志记录占用。

数据库的负载不是因为insert本身,而是因为insert之后,而是因为CreationDate字段由数据库生成,EFCore 在插入后选择它。

为了解决“datetime2”错误转换,我定义了CreationDate字段为 entity.Property(e => e.CreationDate).HasColumnType("datetime").HasDefaultValueSql("getdate()");
所以EF在插入后调用DB:

(@p0 uniqueidentifier)SELECT [CreationDate]
FROM [MyLogs]
WHERE @@ROWCOUNT = 1 AND [Id] = @p0

有没有办法避免这种行为,只是让实体在插入后不被跟踪?

目前我看到的唯一方法是忽略实体模型中的 CreationDate 字段,因为它没有被使用。 entity.Ignore(e => e.CreationDate);

最佳答案

您无需忽略该属性。创建默认构造函数并从服务器端初始化属性。

public  class User 
{
public User()
{
this.CreationDate= Datetime.UTC.Now;
}
public int UserId {get;set;}
public Datetime CreationDate {get;set;}
}
它会在您初始化类时执行。

关于asp.net-core - 如何避免在插入 EF Core 后选择插入的实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44923147/

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