我在Azure DB上有很多仅用于日志目的的插入,我看到现在这个日志记录占用了大部分DTU。


数据库的加载不是因为插入本身,而是因为插入之后,但因为数据库正在生成 CreationDate
字段,而EFCore在插入后选择它。
为了解决“datetime2”错误转换,我将 CreationDate
字段定义为 entity.Property(e => e.CreationDate) .HasColumnType(“datetime”)。HasDefaultValueSql(“getdate()”);
因此EF在插入后调用数据库:
&# xA;&#xA; (@ p0 uniqueidentifier)SELECT [CreationDate]&#xA; FROM [MyLogs]&#xA; WHERE @@ ROWCOUNT = 1 AND [Id] = @ p0&#xA; < / code>
&#xA;&#xA; 有没有办法避免这种行为,只是让插入后没有跟踪实体?
&#xA;&#xA; < p>现在,我看到的唯一方法是忽略实体模型中的CreationDate字段它没有被使用。 entity.Ignore(e =&gt; e.CreationDate);
&#xA;
答案 0 :(得分:0)
您无需忽略该属性。创建默认构造函数并从服务器端初始化属性。
public class User
{
public User()
{
this.CreationDate= Datetime.UTC.Now;
}
public int UserId {get;set;}
public Datetime CreationDate {get;set;}
}
它会在您初始化类时执行。