相关疑难解决方法(0)

实体框架/ SQL2008 - 如何自动更新实体的LastModified字段?

如果我有以下实体:

public class PocoWithDates
{
   public string PocoName { get; set; }
   public DateTime CreatedOn { get; set; }
   public DateTime LastModified { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这对应于具有相同名称/属性的SQL Server 2008表...

我怎么能自动:

  1. 将记录的CreatedOn/LastModified字段设置为现在(执行INSERT时)
  2. 将记录的LastModified字段设置为现在(执行UPDATE时)

当我自动说,我的意思是我希望能够做到这一点:

poco.Name = "Changing the name";
repository.Save(); 
Run Code Online (Sandbox Code Playgroud)

不是这个:

poco.Name = "Changing the name";
poco.LastModified = DateTime.Now;
repository.Save();
Run Code Online (Sandbox Code Playgroud)

在幕后,"某事"应该自动更新日期时间字段.什么是"东西"?

我正在使用Entity Framework 4.0 - 有没有一种方法可以让EF为我自动执行此操作?(EDMX中的特殊设置可能?)

从SQL Server端,我可以使用DefaultValue,但这只适用于INSERT(不是UPDATE).

类似地,我可以使用POCO上的构造函数设置默认值,但这只会在实例化对象时起作用.

当然我可以使用触发器,但它并不理想.

因为我正在使用Entity Framework,我可以挂钩到SavingChanges事件并在这里​​更新日期字段,但问题是我需要"了解"POCO(目前,我的存储库是用泛型实现的).我需要做一些OO技巧(比如让我的POCO实现一个接口,然后调用一个方法).我并不反对,但如果我必须这样做,我宁愿手动设置字段.

我基本上在寻找SQL Server …

.net c# sql-server-2008 entity-framework-4 datetime-generation

41
推荐指数
4
解决办法
2万
查看次数

如何设置创建日期和修改日期以在DB第一种方法中进行设置

在我们的应用程序的每个SQL表中,我们都有"CreatedDate"和"ModifiedDate"列.我们正在使用DB第一种方法.当我保存数据时,我希望自动填充这两列.一种方法是getdate()在SQL表列本身上使用默认值.所以这将部分地解决问题.这意味着当实体是新的时,它将设置CreatedDate和ModifiedDate.但是,当我编辑/更新实体时,我只想ModifiedDate更新.
使用Code第一种方法有很多文章在做这件事.但我们正在使用DB第一种方法.
我有什么选择?

entity-framework ef-database-first

15
推荐指数
5
解决办法
1万
查看次数

EF Core:内置的创建和编辑时间戳

标题是不言自明的。是否存在内置机制来支持Entity Framework Core中代码优先数据库中记录的创建和编辑时间戳记?

喜欢的东西:created_at,并:updated_at在Ruby on Rails的迁移。我找不到与此有关的任何文档。如果没有现成的机制,是否有最佳实践来实现这些列?

entity-framework entity-framework-core asp.net-core

7
推荐指数
1
解决办法
2226
查看次数