使用自动生成的Poco实体

时间:2012-05-03 10:10:22

标签: c# .net entity-framework poco

我正在开发一个asp.net应用程序,我有以下场景:

我的桌子上有一个edmx filw,我从“添加代码生成项”创建了我的Poco实体,我的问题就是我应该在哪里添加我的自定义方法(checkIfEmailExists,AddUser等等),因为如果我在运行自定义工具或更新我的edmx文件时将它们添加到我的poco实体中,实体被重新生成并且我丢失了所有方法?

2 个答案:

答案 0 :(得分:3)

您的实体应与某些业务逻辑或安全性分开。您应该创建一个类,例如Security,您将在其中实现依赖于您的实体的那些方法,但不应将它们直接添加到您的实体。

您创建的每个班级都应该遵循单一责任原则。即使您的实体类可能只包含公共属性,您应该首先考虑AddUser或CheckIfEmailExists是否真的属于这些类。如果他们不属于那里,将他们分成他们自己的班级。如果您有充分的理由将这些内容放入实体中,那么将这些方法放入这些实体中。

然后,AddUser又做了什么?如果您有一个类/表Users和另一个类/表UserDetails,您是否将AddUser作为前一个类/表或后者的一部分?

答案 1 :(得分:2)

生成的类是partial - 它包含类的一部分。您可以在其他位置创建另一个文件,遵循命名(即名称空间和类名称以及partial关键字)。执行新的自动生成时,不会重写此文件。你把自定义代码放在这里。这些文件由编译器“合并”。