2010-11-30 6 views

答えて

20

はい。それが可能だ。 Entity FrameworkによってPartial Classesが生成されます。

つまり、パーシャルクラス定義の別の部分が含まれている別のファイルを作成することができます(追加の方法で)、すべてうまく動作します。

+0

システムを使用して:あなたは、あなたがそれにEntity Frameworkのから1をカスタムクラスのオブジェクトとストアを作成、それを使用したいところはどこでもあなたはその後、その後、余分なカスタム属性とメソッド

namespace Garden //same as namespace of your entity object { public class CustomFlower { public Flower originalFlowerEntityFramework; // An extra custom attribute public int standardPrice; public CustomFlower(Flower paramOriginalFlowerEntityFramework) { this.originalFlowerEntityFramework = paramOriginalFlowerEntityFramework } // An extra custom method public int priceCustomFlowerMethod() { if (this.originalFlowerEntityFramework.name == "Rose") return this.originalFlowerEntityFramework.price * 3 ; else return this.price ; } } } 

を追加することができます; using System.Collections.Generic; using System.Linq; using System.Web; 名前空間FOO.Models {ここで方法の 公共部分クラスFOO_USERS { ます。public void bar()の { は//コード }} } – eka808

+0

このコードは動作します:) – eka808

+0

使用することが可能ですLINQクエリ内のそのメソッド?.. – Json

2
public static class ModelExtended 
{ 
    public static void SaveModelToXML(this Model1Container model, string xmlfilePath) 
    { 
     ///some code 
    } 
} 
+0

これは、ほとんどの場合、拡張メソッドを作成します。ただし、プロパティを追加する場合(プロパティ式でターゲットする場合)、部分クラスを使用します。 – dognose

4

最初の答えのための例:あなたとあなたの部分クラスを持っていると仮定すると

namespace Garden //same as namespace of your entity object 
{ 
    public partial class Flower 
    { 
     public static Flower Get(int id) 
     { 
      // 
     } 
    } 
} 
0

あなたはFlowerあなたがそれにメソッドを追加するために、このpartialクラスを使用することができますという名前のエンティティを持っている場合データベースからのEntity Framework属性値:

namespace Garden //same as namespace of your entity object 
    { 
     public partial class Flower 
     { 
      public int price; 
      public string name; 
      // Any other code ... 
     } 
    } 
別の部分クラスを使用したくない場合は、属性として格納されている元のエンティティを含む独自のカスタムクラスを定義できます。

//Your Entity Framework class 
Flower aFlower = new Flower(); 
aFlower.price = 10; 
aFlower.name = "Rose"; 

// or any other code ... 

// Your custom class 
CustomFlower cFlower = new CustomFlower(aFlower); 
cFlower.standardPrice = 20; 

MessageBox.Show("Original Price : " + cFlower.originalFlowerEntityFramework.price); 
// Will display 10 
MessageBox.Show("Standard price : " + cFlower.standardPrice); 
// Will display 20 
MessageBox.Show("Custom Price : " + cFlower.priceCustomFlowerMethod()); 
// Will display 30 
関連する問題