gpt4 book ai didi

c# - 泛型和 Entity Framework

转载 作者:太空宇宙 更新时间:2023-11-03 11:10:08 25 4
gpt4 key购买 nike

在我的数据库中,每个表的末尾有 5 个字段:

  • 国家
  • 创建日期
  • 创建者
  • 修改日期
  • 修改者

我正在使用 Entity Framework 为数据库生成 POCO 对象。我有 Dal 层来处理所有的 CRUD 操作。

不断复制和粘贴相同的代码来填写 5 个字段是一件很痛苦的事情。我想知道是否有人有可以处理任何实体对象并为我填写字段的通用方法。

最佳答案

您应该实现一个具有这些属性的公共(public)基类,并从该基类派生您的 POCO 类。

您可以通过重写上下文类中的 SaveChanges() 来自动处理诸如 Create/ModifiedDate 和 User 之类的设置。这使对象使用者无需在使用类的任何地方设置这些属性。

这是我的一个项目中的此类代码示例(在我的例子中,具有 LastModified 属性的对象实现接口(interface) IHasLastModified):

    public override int SaveChanges()
{
DateTime now = DateTime.UtcNow;
foreach (ObjectStateEntry entry in (this as IObjectContextAdapter).ObjectContext.ObjectStateManager.GetObjectStateEntries(EntityState.Added | EntityState.Modified))
{
if (!entry.IsRelationship)
{
IHasLastModified lastModified = entry.Entity as IHasLastModified;
if (lastModified != null)
lastModified.LastModified = now;
}
}

int changes = base.SaveChanges();
return changes;
}

关于c# - 泛型和 Entity Framework ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14365593/

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