C# 如何在MVC4中实现分部类?

C# 如何在MVC4中实现分部类?,c#,asp.net,asp.net-mvc-4,partial-classes,C#,Asp.net,Asp.net Mvc 4,Partial Classes,我有一个类Employee.cs,它是在我连接到数据库时由EntityFramework自动生成的,现在我想实现一个部分类,但我不能为该类使用“Employee.cs”名称,因为它已经存在。我能给它取个别的名字吗?它会工作的?你能解释一下编译器是如何知道Employee.cs还有另一个分部类的吗 你可以给文件起任何你想要的名字,比如Employee.custom.cs,但是你必须调用它中的类Employee,它的名称空间与另一个文件中的Employee类的名称空间相同,还带有一个partial修

我有一个类Employee.cs,它是在我连接到数据库时由EntityFramework自动生成的,现在我想实现一个部分类,但我不能为该类使用“Employee.cs”名称,因为它已经存在。我能给它取个别的名字吗?它会工作的?你能解释一下编译器是如何知道Employee.cs还有另一个分部类的吗

你可以给文件起任何你想要的名字,比如Employee.custom.cs,但是你必须调用它中的类Employee,它的名称空间与另一个文件中的Employee类的名称空间相同,还带有一个
partial
修饰符,你应该可以开始了


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

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

MyProject.Employee
如果要创建具有相同名称的类,则必须在命名中添加一个分隔级别,或者如果它必须是具有此生成类的分部类,则还必须将其标记为分部类

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

或:

在文件Model/Employee.cs中

在文件ViewModel/Employee.cs中

对您来说,重要的是了解部分的含义&编译器将如何处理您的类:事实上,编译器将把所有
partial
类放在一起,然后编译它们。部分代码的唯一好处是可以将代码拆分到多个文件中。最好的例子是
Windows.Forms
,其中有“代码隐藏”文件(Form1.cs),然后有“设计器”文件(Form1.designer.cs)


您还可以根据需要为文件命名,通常的标准是1 class=1 file,并且类名应与文件名匹配。

注意,在C#中,与Java不同,文件名不必与类名匹配,因此,您可以将其他声明放在任何文件中,编译器将在扫描作为项目一部分的文件时找到它。但是Employee类是自动生成的。他不应该在那里添加部分关键字。。对吗?@Reddy EF代码在默认情况下首先应该生成分部类。好的,这很有意义。谢谢斯坦利
public class MyProject.AnySubPath.Employee {}
public partial class MyProject.Employee {}
public partial class MyProject.Employee {}