如果我有以下实体:
public class PocoWithDates
{
public string PocoName { get; set; }
public DateTime CreatedOn { get; set; }
public DateTime LastModified { get; set; }
}
对应于具有相同名称/属性的SQL Server 2008表...
我如何自动:
将记录的CreatedOn / LastModified字段设置为现在(执行INSERT时)
将记录的LastModified字段设置为现在(执行UPDATE时)
当我自动说时,我的意思是我希望能够做到这一点:
poco.Name = "Changing the name";
repository.Save();
不是这个:
poco.Name = "Changing the name";
poco.LastModified = DateTime.Now;
repository.Save();
在幕后,“某物”应自动更新日期时间字段。那是什么“东西”?
我正在使用Entity Framework 4.0-EF是否可以为我自动执行此操作?(也许是EDMX中的特殊设置?)
从SQL Server方面,我可以使用DefaultValue,但这仅适用于INSERT(而不是UPDATE)。
同样,我可以在POCO上使用构造函数设置默认值,但是同样,这仅在实例化对象时有效。
当然,我可以使用触发器,但这并不理想。
因为我使用的是Entity Framework,所以我可以在这里挂入SavingChanges事件并更新日期字段,但是问题是我需要“意识到” POCO(目前,我的存储库已使用泛型实现)。我将需要进行某种OO欺骗(例如使我的POCO实现一个接口,并在该接口上调用一个方法)。我对此并不反对,但是如果我必须这样做,我宁愿手动设置字段。
我基本上是在寻找SQL Server 2008或Entity Framework 4.0解决方案。(或智能.NET方式)
有任何想法吗?
holdtom