使用 POCO 和 Fluent NHibernate,我希望能够获取像 User 这样的对象并能够赋予它各种属性。我希望这些对象能够专注于它们的属性,而不是常见的属性。目前,我有一个 AuditableEntity,我可以从中派生,使我的实体能够拥有像 CreatedDateTime 和 ModifiedDateTime 这样的审核属性,但我也希望能够消除为每个对象实现我的 Id 的需要,Id 应该能够成为其他一些基础对象的一部分,所以我可以说这个对象有一个 Guid Id,这个有一个 int id,这个没有 Id。目前,我的用户对象如下所示:
用户.cs
namespace ZeroBase.Domain.Entities
{
public class User : AuditableEntity<User>
{
public virtual Guid Id { get; set; }
public virtual string Username { get; set; }
public virtual string Password { get; set; }
public virtual string FirstName { get; set; }
public virtual string LastName { get; set; }
public virtual string EmailAddress { get; set; }
public virtual IEnumerable<Comment> Comments { get; set; }
}
}
我的 UserMap 看起来像这样:
用户地图.cs
namespace ZeroBase.Infrastructure.Data
{
public class UserMap : AuditMap<User>
{
public UserMap()
{
Id(x => x.Id)
.Column("Id")
.GeneratedBy.Guid();
Map(x => x.Username);
Map(x => x.Password);
Map(x => x.FirstName);
Map(x => x.LastName);
Map(x => x.EmailAddress);
HasMany(x => x.Comments);
Table("Users");
}
}
}
有没有办法在某种通用基类中处理 Id 创建,并且仍然有一个单独的类,对象可以继承该类以成为可审计的?