我正在开发一个 asp.net 应用程序,我有以下场景:
我有一个带有我的表的 edmx 文件,我从“添加代码生成项”创建了我的 Poco 实体,我的问题只是我应该在哪里添加我的自定义方法(例如,checkIfEmailExists、AddUser 等),因为如果我添加了它们在我的 poco 实体中运行自定义工具或更新我的 edmx 文件时,实体会重新生成并且我丢失了所有方法?
我正在开发一个 asp.net 应用程序,我有以下场景:
我有一个带有我的表的 edmx 文件,我从“添加代码生成项”创建了我的 Poco 实体,我的问题只是我应该在哪里添加我的自定义方法(例如,checkIfEmailExists、AddUser 等),因为如果我添加了它们在我的 poco 实体中运行自定义工具或更新我的 edmx 文件时,实体会重新生成并且我丢失了所有方法?
您的实体应该与某些业务逻辑或安全性分开。您应该创建一个类,例如 Security,您将在其中实现那些依赖于您的实体的方法,但您不应该将它们直接添加到您的实体中。
您创建的每个类都应尝试遵循单一职责原则。即使您的实体类可能只包含公共属性,您也应该首先考虑 AddUser 或 CheckIfEmailExists 是否真的属于这些类。如果他们不属于那里,则将他们分成自己的班级。如果您有强烈的论据将这些东西放入您的实体中,那么将这些方法放入这些实体中。
再说一次,AddUser 做了什么?如果您有一个类/表用户和另一个类/表 UserDetails,您会将 AddUser 作为前一个类/表还是后者的一部分?
生成的类是部分的——它包含类的一部分。您可以在别处创建另一个文件,遵循命名(即命名空间和类名和partial
关键字)。执行新的自动生成时,不会重写此文件。您将自定义代码放在这里。这些文件由编译器“合并”。