2016-11-16 14 views
2

Employee.csデータベースに接続したときにEntityFrameworkによって自動生成されましたが、今度は部分クラスを実装したいのですが、そのクラスには「Employee.cs」という名前を使用できませんもう存在している。 他にもという名前を付けても問題ありませんか?コンパイラがEmployee.csの別の部分クラスがあることをどのように知っているのか説明できますか?MVC4で部分クラスを実装する方法は?

+1

Javaとは異なり、C#ではファイルの名前がクラスの名前と一致する必要はないため、他の宣言を任意のファイルに入れることができます。コンパイラは、プロジェクトの一部 –

答えて

2

あなたはEmployee.custom.csのように好きな名前のファイルを与えることができますが、partialでも、従業員他のファイルにEmployeeクラスと同じ名前空間にそれでクラスを呼び出す必要がありますあなたは行かなくてはなりません。

コンパイラは、同じ名前のすべてのpartialクラスを収集し、名前ごとに1つのクラスにコンパイルするだけです。

+0

しかし、Employeeクラスは自動的に正しく生成されます。彼はそこに部分的なキーワードを追加するルートを取ってはいけません..そうですか? –

+0

ありがとう、私はこれをテストし、魅力的に働いた。 – ihavenokia

+0

@Reddy EF code-firstはデフォルトで部分クラスを生成する必要があります。 –

1

コンパイラは常にクラスのフルネームで動作します。 MyProjectと名前のプロジェクトがある場合は、クラスの完全な名前のようなものになります:あなたは、同じ名前を持つクラスを作成したい場合は

MyProject.Employee 

、あなたは命名に分離のレベルを追加する必要があり、またはそれならばこの生成されたクラスで部分クラスにする必要があります。あなたは部分クラスとしてマークする必要があります。

あなたは(モデル/ Employee.csで)作成することができ、次のいずれか

public class MyProject.AnySubPath.Employee {} 

または:ファイル内のファイルに

モデル/ Employee.cs

public partial class MyProject.Employee {} 

ViewModel/Employee.cs

あなたのための重要な
public partial class MyProject.Employee {} 

あなたのクラスでの部分的な平均&何をします、コンパイラが何であるかを実現することである。実際には、コンパイラはちょうど一緒にすべてのpartialのクラスを配置し、それらをコンパイルします。 partialの唯一の利点は、複数のファイルにコードを分割することができることです。これのExcelentの例はWindows.Formsです。コードビハインドファイル(Form1.cs)があり、 "デザイナー"ファイル(Form1.Designer.cs)があります。

また、任意の名前でファイルに名前を付けることができます。クラス1のファイルを1つ持つことが一般的な標準であり、クラス名はファイル名に合う必要があります。

関連する問題