Tag: domain model

是否可以在ViewModel中重用DataAnnotations?

在我的MVC应用程序中,我在域模型中定义了DataAnnotations。 尽管在使用域模型时可以检索DataAnnotations属性作为Display等,但在ViewModel上使用相同属性并使用此ViewModel时,无法检索它们。 我认为再次在ViewModel中定义DataAnnotations似乎并不好。 那么,我应该遵循哪种方式? 领域模型: public class Issue { [Key] public int ID { get; set; } [Required(ErrorMessage = “Required”)] [Display(Name = “Project Number”)] public int ProjectID { get; set; } [Required(ErrorMessage = “Required”)] [Display(Name = “Issue Definition”)] public string Description { get; set; } //… removed for brevity //Navigation Properties: public virtual ICollection FileAttachments […]

DDD:持久化之前的实体身份

在域驱动设计中,实体的一个定义特征是它具有身份。 问题: 我无法在实例创建时为实体提供唯一标识。 一旦实体被持久化(此值由底层数据库提供),此标识仅由存储库提供。 此时我无法开始使用Guid值。 现有数据与int主键值一起存储,我无法在实例化时生成唯一的int。 我的解决方案 每个实体都有一个标识值 一旦持久化(由数据库提供),身份仅设置为真实身份 在持久性之前实例化时,标识设置为默认值 如果标识是默认标识,则实体可通过引用进行比较 如果标识不是默认标识,则实体可通过标识值进行比较 代码(所有实体的抽象基类): public abstract class Entity { private readonly IdType uniqueId; public IdType Id { get { return uniqueId; } } public Entity() { uniqueId = default(IdType); } public Entity(IdType id) { if (object.Equals(id, default(IdType))) { throw new ArgumentException(“The Id of a Domain Model […]