C# DbSet与ObjectSet-字符串谓词
是否仍然可以从C# DbSet与ObjectSet-字符串谓词,c#,entity-framework-4,C#,Entity Framework 4,是否仍然可以从DbSet创建ObjectSet 一些背景信息:我有一个模型(EF4.2),它在对象上下文中返回dbset。我需要对它进行改造,以支持来自旧数据模型(EF4)的API。较旧的数据模型返回对象集,API(IIS托管的WCF 3.5服务)中的几个方法接受传递给较旧模型的查询字符串谓词。但是,我需要在新模型中复制此行为,DbSet.Where方法不接受字符串谓词参数。通过从对象上下文(ObjectContext.CreateObjectSet(string))创建一个对象集,我可以部分地
DbSet
创建ObjectSet
一些背景信息:我有一个模型(EF4.2),它在对象上下文中返回dbset。我需要对它进行改造,以支持来自旧数据模型(EF4)的API。较旧的数据模型返回对象集,API(IIS托管的WCF 3.5服务)中的几个方法接受传递给较旧模型的查询字符串谓词。但是,我需要在新模型中复制此行为,DbSet.Where
方法不接受字符串谓词参数。通过从对象上下文(ObjectContext.CreateObjectSet(string)
)创建一个对象集,我可以部分地让它工作,但是这样做似乎无法让任何include语句正常工作
有没有办法将字符串谓词传递到DbSet
中,或者有没有办法从DbSet
中获取ObjectSet
,其中.Include
方法加载相关数据集
感谢您的支持(下面是一些代码片段):
类创建ObjectSet
(因此我使用上下文初始化,而不是使用在ClinicalContext.examies
等中为这些对象返回的DbSet,我获取底层对象上下文,并使用DbSet
中包含的相同对象从中创建一个EntitySet
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;
}
}
公共类ExamServicesEntities
{
私人临床语境;
公共ExamServicesEntities(ClinicalContext上下文)
{
_上下文=上下文;
}
私有对象集_examenties;
公共对象集考试
{
得到
{
如果(_examenties==null)
{
_ExamEntities=_Context.ObjectContext.CreateObjectSet(“考试”);
}
返回测试;
}
}
私有对象集访问度;
公众对象集访问
{
得到
{
如果(_visienties==null)
{
_Visitenties=_Context.ObjectContext.CreateObjectSet(“访问”);
}
回访率;
}
}
}
执行此操作将正确加载数据,但当我尝试包含其他对象之一(检查包含就诊,就诊包含患者)时,引用未生成。通过复制和调整用于生成上下文对象的T4模板来解决此问题,以基于ObjectSet生成第二个上下文对象