栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

由于我在我的控制器(即使用ASP.NET MVC)和我的存储库之间进行中介的服务层,因此我决定在此处自动设置字段。

另外,我的POCO没有关系/抽象,它们是完全独立的。我想保持这种方式,而不要标记任何虚拟属性或创建基类。

所以我创建了一个接口IAutoGenerateDateFields:

public interface IAutoGenerateDateFields{   DateTime LastModified { get;set; }   DateTime CreatedOn { get;set; }}

对于任何希望自动生成这些字段的POCO,我都实现了此接口。

使用我的问题中的示例:

public class PocoWithDates : IAutoGenerateDateFields{   public string Poconame { get; set; }   public DateTime CreatedOn { get; set; }   public DateTime LastModified { get; set; }}

现在,在我的服务层中,检查具体对象是否实现了接口:

public void Add(SomePoco poco){   var autoDateFieldsPoco = poco as IAutoGenerateDateFields; // returns null if it's not.   if (autoDateFieldsPoco != null) // if it implements interface   {      autoDateFieldsPoco.LastModified = DateTime.Now;      autoDateFieldsPoco.CreatedOn = DateTime.Now;   }   // ..go on about other persistence work.}

稍后,我可能会在“添加到帮助器/扩展程序”方法中破坏该代码。

但是我认为这对我的情况来说是一个不错的解决方案,因为我不想在“保存”中使用虚拟机(因为我正在使用工作单元,存储库和Pure POCO),并且不想使用触发器。

如果您有任何想法/建议,请告诉我。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/430434.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号