EF 4 では、エンティティごとに既定の ObjectSet を使用できます。たとえば、テーブル Employee があり、エンティティ モデルを生成した後、EF は Employee に ObjectSet を作成します。次に、wcf ria サービスを使用する場合、デフォルトのクエリは次のようになります。
public IQueryable GetEmployee() { return this.ObjectContext.Employees; }
objectSet を使用すると、次のように結果に include を適用できます。
return this.ObjectContext.Employees.Include("Department");
次に、MySearchForEmployee というストアド プロシージャを作成し、それを関数としてインポートします。結果はエンティティ Employee にマップされます。関数を呼び出すと、結果は ObjectSet ではなく ResultSet になります。
次のようなストアドプロシージャを呼び出して、ドメインサービスで同様のメソッドを利用できるようにしたい:
public IQueryable<Employeer> GetMySearch(string keyword)
{
return this.ObjectContext.MySearchForEmployee(keyword).Include("Department");
}
しかし、上記のコードイベントは構文チェックに合格できないため、できません。
結果の型を変換するために次の方法を試しました:
var results = this.ObjectContext.MySearchForEmployee(keyword);
var objsets = (ObjectSet<Employee>) results;
次に、次のようなエラーが発生しました: タイプ 'System.Data.Objects.ObjectResult' を 'System.Data.Objects.ObjectSet' に変換できません
このリクエストを実装するには?