2011-10-30 15 views
0

モデルクラスに計算カラムを追加する方法。モデルに計算カラムを追加する方法

Iは、ビュー内の2つのモデルがあり

  1. User
  2. City

UserCityID(FKのcontraint)とCityに接続され、CityNameCityモデルである

私は計算された共同(User(dbml)に接続されているCityモデルからUserモデルの.rdlcレポートが価値がないようです。

現在、モデルに新しいプロパティを追加すると、そのモデルを使用するlinqクエリが実行されるときにエラーが発生します。それは、データベースからUserからCityNameを選択しようとする意味

無効な列名 'UserCityName'

ありがとうございました。

答えて

3

LinqToSQLは部分クラスとしてエンティティを生成するので、新しいクラスを追加して次のコードを追加することでエンティティに列を追加できます。

例:

namespace YourEntityNameSpace 
{ 
    public partial class User 
    { 
     public string UserAdditionalText 
     { 
      get 
      { 
       // your code goes here 
      } 
     } 
    } 
} 

更新:

  1. がソリューションウィンドウでModel.dbmlを展開し、あなたはModel.dbml.layoutModel.designer.csがあります。
  2. オープンModel.designer.csは、それはあなたのデータベースからテキストpublic partial class Userため
  3. 検索し、自動生成されたクラスが含まれています。これで、自動生成されたクラスは部分クラスです。つまり、クラスを別のファイルに定義することができます。 Read more
  4. プロジェクトに新しいクラスを追加するには、自動生成されたファイルと同じ名前空間とクラス名を使用します。
  5. ユーザークラスに追加のプロパティを追加すると、自動生成クラス内のすべてのプロパティとメンバーにアクセスできます。
+0

私はdbmlデザイナーからモデルを作成し、dbmlファイルには自動生成モデルクラスがあります。モデルクラスで手動で行われた変更は将来dbml designerから変更されても失われませんか? –

+0

もちろん、自動生成モデルクラスを見ることができます。これは部分的です。あなたがしなければならないことは、プロジェクトに新しいクラスを追加し、その名前空間をモデルの名前空間に変更することです(私の答えでは 'YourEntityNameSpace')。 – Ekk

+0

別の名前空間の下で別々のクラス 'User'を作成するのですか? –

関連する問題