因此,我目前正在讨论使用属性定义具体类的选项,或者使用元数据类型设计。例如:
public class Employee
{
public Guid Id { get; set; }
public string Name { get; set; }
public string EmployeeCode { get; set; }
public string SpecialAssignment { get; set; }
public string SomeFutureProperty { get; set; }
}
与键/值对设计相对应,可以是动态的:
public class Employee
{
public Guid Id { get; set; }
public string Name { get; set; }
public virtual ICollection<MetaKeyValue> Properties { get; set; }
}
public class MetaKey
{
public Guid Id { get; set; }
public string EntityType { get; set; } // could be a dictionary or enum
public string Name { get; set; }
public string Description { get; set; }
public string Required { get; set; }
}
public class MetaKeyValue
{
public Guid Id { get; set; }
public Guid EntityId { get; set; }
public Guid MetaKeyId { get; set; }
public string Value { get; set; } // string isn't the preferred object type
}
所以,争论的焦点是,我不确定哪一个更有效率。目标持久性是使用Entity Framework的SQL数据库。元数据设计的优点在于无需修改代码和规划部署,新的&#34;属性&#34;可以添加到实体中,可以添加和检索值。否定的是,它并不是我所习惯的,因为我是一名喜欢静态定义的具体课程的老派编码员。动态设计会让我在后面的后方咬我吗?