【发布时间】:2018-11-09 13:27:12
【问题描述】:
我听说对于小型项目不推荐使用 DTO,例如 here 和 here。我想知道一个相当小的项目(团队方面)是否可以合并域模型中的非持久属性?例如:
namespace Domain.Entities
{
public class Candidate : BaseEntity
{
public Candidate()
{
// some construction codes
}
// region persistent properties
public string FirstName { get; set; }
public string LastName { get; set; }
public bool? IsMale { get; set; }
public DateTime BirthDate { get; set; }
// other properties ...
// region non-persistent properties
public string FullName => $"{FirstName} {LastName}";
}
}
这只是保持简单还是这样失去了任何有价值的东西?
【问题讨论】:
-
当然,将所有方法放在一个地方很好,但我想这会混淆持久性。这完全取决于您如何读取数据和持久化数据。
-
我应该在问题中提供哪些额外信息?
-
如果您这样做,您需要在 fluent 配置中将非持久属性标记为
[NotMapped()]或.Ingore()。而且您将无法在 LINQ 查询中查询这些属性。 -
@DavidBrowne-Microsoft 不会 EF 自动忽略只读属性?
-
@roozbehS 我不知道,但如果是这样就有意义了。
标签: c# entity-framework viewmodel dto