DbSet
からObjectSet
を作成する方法はありますか?DbSetとObjectSet - 文字列述語
いくつかの背景情報:オブジェクトコンテキスト内でDbSetsを返すモデル(EF 4.2)があります。私は古いデータモデル(EF4)からAPIをサポートするためにそれを改造する必要があります。古いデータモデルはオブジェクトセットを返すもので、API内のいくつかのメソッド(IISがホストするWCF 3.5サービス)は、古いモデルに渡されたクエリ文字列述語を受け入れます。新しいモデルでこの動作を再現する必要がありますが、DbSet.Where
メソッドは文字列述語パラメータを受け入れません。 Object Context(ObjectContext.CreateObjectSet<T>(string)
)からオブジェクトセットを作成することで部分的に動作させることができましたが、このようにすると、正しく動作するインクルードステートメントが得られないようです。
はDbSet
へのパス文字列の述部のいずれかに方法はありますか.Include
方法は、関連するデータ・セットをロードするDbSet
からObjectSet
を取得する方法はありますか? advnceで
おかげ(以下、いくつかのコードスニペット):
クラスObjectSet
を作成するために、(私は私のコンテキストで初期化して、代わりにDbSetを使用するのではClinicalContext.Exams
などでこれらのために返される、私は基本的なオブジェクトコンテキストを取得し、作成しますEntitySet
DbSet
に含まれるのと同じオブジェクトを使用して。
public class ExamServicesEntities
{
private ClinicalContext _Context;
public ExamServicesEntities(ClinicalContext context)
{
_Context = context;
}
private ObjectSet<Exam> _ExamEntities;
public ObjectSet<Exam> Exams
{
get
{
if (_ExamEntities == null)
{
_ExamEntities = _Context.ObjectContext.CreateObjectSet<Exam>("Exams");
}
return _ExamEntities;
}
}
private ObjectSet<Visit> _VisitEntities;
public ObjectSet<Visit> Visits
{
get
{
if (_VisitEntities == null)
{
_VisitEntities = _Context.ObjectContext.CreateObjectSet<Visit>("Visits");
}
return _VisitEntities;
}
}
}
これを行うことは、正しくデータをロードすることから、しかし私が他のオブジェクトの1つを含むようにしようとすると(参照には訪問が含まれ、訪問には患者が含まれます)、参照は作成されません。