将数据库相关属性与业务逻辑分开

时间:2019-01-27 14:47:43

标签: c# .net entity-framework-6 ef-code-first

我正在使用Entity Framework数据库优先方法更改项目代码。 目前,每个poco还有一个附加的局部类,其中包含附加的属性和方法。一些局部类甚至扩展了基类。

首先,我为每个poco创建实体类,并添加了实体配置。

现在,我不确定如何继续使用局部类。仅仅将所有这些业务逻辑添加到实体类中将是错误的。此外,我必须将NotMapped属性添加到每个其他属性中,并且我担心将来有人会添加属性而忘记添加NotMapped属性,这会给迁移带来麻烦。

所以我想知道如何区分实体以及其他属性和方法?最佳做法是什么?谢谢!

1 个答案:

答案 0 :(得分:0)

这是我解决此问题的方法:

我创建了一个名为“ Entities”的文件夹和一个名为“ DomainEntities”的文件夹,并将每个实体类的副本放入每个文件夹中。然后,我将所有的业务逻辑从部分类添加到DomainEntities。 Entities文件夹的类仅用于数据库操作。 我使用自动映射器将实体映射到域实体,反之亦然。

如果有人知道更好的方法,请分享。