7

EDMXを使用してWCFデータサービスでODataサービスを作成しています。エンティティタイプの計算プロパティを作成して、その値がサービス(C#)で計算され、データベースから取得されないようにするにはどうすればよいですか?
このプロパティの値は、データベース内のフィールドにマップされている他のプロパティの値に基づいています。

4

2 に答える 2

3

データサービス用のデフォルトのEntityFrameworkProviderを使用して、EDMXファイルを直接公開する場合は、次のようになります。

public class MyService: DataService<MyEntities> {

残念ながら、基盤となるEntityFrameworkEDMモデルにない「新しい」プロパティを公開することはできません。

他のオプションがあると言っても、追加のプロパティを追加し、ほとんどの作業を内部でEFに委任するリフレクションプロバイダーまたはカスタムプロバイダーを作成できます。

問題は、今日、すべての委任を設定することは容易ではないということです。

この一連の投稿では、プロバイダーについて説明し、カスタムプロバイダーベースのサービスを作成する方法を示します。これは、Reflectionプロバイダーを使用してサービスを作成する方法を示しています。

于 2010-10-05T15:10:29.737 に答える
2

私が見つけた解決策は、EDMXの代わりにEntity FrameworkCodeFirstを使用することです。コードで標準プロパティを作成するだけで、計算されたプロパティを作成できます。
次に例を示します。

public class Person
{
  public String FirstName { get; set; }
  public String LastName { get; set; }
  public String FullName
  {
    get { return FirstName + " " + LastName; }
  }
}
于 2010-10-06T08:14:01.570 に答える