如何在MVC4中实现部分类?

时间:2016-11-16 14:38:25

标签: c# asp.net asp.net-mvc-4 partial-classes

我有一个类 Employee.cs ,当我连接到数据库时由EntityFramework自动生成,现在我想实现部分类,但我可以'使用" Employee.cs"该类的名称,因为它已经存在。我可以提供其他名称,它会起作用吗?你能解释一下编译器如何知道还有另一个Employee.cs的部分类吗?

2 个答案:

答案 0 :(得分:2)

您可以为文件提供您想要的任何名称,例如 Employee.custom.cs ,但您必须在与Employee类相同的命名空间中调用 Employee 中的类在另一个文件中,也使用partial修饰符,你应该很高兴。

编译器只收集具有相同名称的所有partial类,并将其编译为每个名称一个类。

答案 1 :(得分:1)

编译器始终使用类的全名。如果有一个名为MyProject的项目,该类的全名将类似于:

MyProject.Employee

如果要创建具有相同名称的类,则必须在命名中添加分隔级别,或者如果必须使用此生成的类进行分级,则必须将其标记为部分类。

您可以创建(在 Model / Employee.cs 中):

public class MyProject.AnySubPath.Employee {}

或者:

在文件 Model / Employee.cs

public partial class MyProject.Employee {}

在文件 ViewModel / Employee.cs

public partial class MyProject.Employee {}

对你来说重要的是要意识到什么是偏袒和编译器将使用您的类:实际上编译器将把所有partial类放在一起,然后编译它们。只有partial才能获益,您可以将代码分成多个文件。最好的例子是Windows.Forms,你有“代码隐藏”文件(Form1.cs),然后你有“设计者”文件(Form1.Designer.cs)。

此外,您可以将文件命名为您想要的任何名称,只有1个class = 1文件并且类名应符合文件名,这是通用标准。