【发布时间】:2020-07-07 17:36:22
【问题描述】:
在我们的应用程序中,我们不直接使用 EF Core 实体,而是将它们映射到相应的“模型”类,在大多数情况下看起来完全相同,但实现了 INotifyPropertyChanged 和 INotifyDataErrorInfo。
假设我有一个 TimeSpan 实体和一个 TimeSpanModel。业务逻辑规定时间跨度始终是一年,从 1.1.xx 到 31.12.xx。我喜欢做的是给 TimeSpanModel 一个构造函数:
public TimeSpanModel(int year)
{
From = new DateTime(year, 1, 1);
To = new DateTime(year, 12, 31);
}
我想知道,我是否“需要”对实际实体执行相同的操作?实体只能通过将模型实例作为参数的存储库创建。
我觉得我的逻辑会加倍,我必须记住在两个地方更改它。
但它也感觉有点“一半”。它仍然可能创建“错误的”时间跨度实体并将它们持久化到数据库中。如果不加倍逻辑就很难解决。业务层一般都在持久层之上,所以我不应该加倍逻辑,只留下实体吧?
【问题讨论】:
标签: wpf entity-framework