gpt4 book ai didi

entity-framework-4.1 - 拥有所有实体派生自的 BaseEntity 类型或接口(interface)更好吗?

转载 作者:行者123 更新时间:2023-12-04 08:20:19 26 4
gpt4 key购买 nike

目前我已经创建了一个基本实体类型,我的所有实体都将派生自该类型。

public abstract class BaseEntity
{

/// <summary>
/// Key Field for all entities
/// </summary>
///
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid Id { get; set; }


/// <summary>
/// Date entity was created
/// </summary>
public DateTime DateCreated { get; set; }

/// <summary>
/// Last date Modified
/// </summary>
public DateTime DateModified { get; set; }

/// <summary>
/// keep track of Row Version used for concurrency
/// </summary>
[Timestamp]
public Byte[] RowVersion { get; set; }

}
}

我正在考虑将我的模型与 Entity Framework 分离,这样它就不再依赖于它。我想要另一个用于我的 EF 实现的项目。所以,我想在该项目中包含映射,这些映射将构成我模型中的关系。

因为我的 BaseEntity 类是一个抽象类,所以我保留我的 [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] 和 [TimeStamp] 属性的最佳方法是什么,以便它可以应用到我使用流畅 API 的所有派生实体和单独的映射文件?我不认为我可以设置建模器来添加 BaseEntity 映射,因为它是一个抽象类。我是否应该创建一个具有我所有基本功能的接口(interface)并为我的所有实体重复映射?

我正在使用 EntityTypeConfiguration 类并为我的所有实体创建单独的映射类。

最佳答案

你可以使用基类:

public abstract class BaseEntity
{
public Guid Id { get; set; }
public DateTime DateCreated { get; set; }
public DateTime DateModified { get; set; }
public Byte[] RowVersion { get; set; }
}

现在取决于您是否要映射继承。我猜你不想这样定义你的配置:

public class BaseEntityConfiguration<TEntity> : EntityTypeConfiguration<TEntity>
where TEntity : BaseEntity
{
public BaseEntityConfiguration()
{
HasKey(e => e.Id);
// This is not very good - check http://stackoverflow.com/questions/6098972/guid-comb-strategy-in-ef4-1-codefirst/6100606#6100606
Property(e => e.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
Property(e => RowVersion).IsRowVersion();
}
}

现在,对于从 BaseEntity 派生的每个实体,从 BaseEntityConfiguration 派生其配置,

关于entity-framework-4.1 - 拥有所有实体派生自的 BaseEntity 类型或接口(interface)更好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6656050/

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