我能够做到
var result = OAS_Questions.Count (oasq => oasq.Id!=0);
result.Dump();
甚至
var result = OAS_Questions;
result.Dump();
但是当我尝试将“问题”的子对象包含在“Opitons”中时,通过
var result = OAS_Questions.Include("OAS_QuestionOptions");
result.Dump();
我出现以下错误
'System.Data.Linq.Table'不包含 “包含”的定义,没有扩展方法“包含”接受 类型的第一个参数 可以找到'System.Data.Linq.Table' (按F4添加using指令或程序集引用)
我已经尝试添加对以下程序集引用的引用。
但是在编写查询时仍然无法使用扩展方法“Include()”,它会产生语法错误。
答案 0 :(得分:25)
如果您通过LinqPad使用EF,那么更好的方法是使用强类型版.Include
(http://msdn.microsoft.com/en-us/library/gg671236%28VS.103%29.aspx),如下所示:
EntityFramework.dll
System.Data.Entity
然后你有intellisense并且可以使用.Include的强类型版本,例如:
var result = OAS_Questions.Include(q => q.OAS_QuestionOptions);
答案 1 :(得分:8)
您需要在EntityFramework项目的DLL中使用Typed DataContext(ObjectContext
或DbContext
)。您可以通过执行以下步骤来执行此操作:
Choose Data Context
向导中,选择Use a typed data context from your own assembly
选项。Browse
,然后导航至然后选择您的EF项目组件。Server
,Log on details
和database
,然后点击确定。您现在应该能够在LinqPad中使用.Include
语句。
答案 2 :(得分:3)
默认情况下,Linqpad使用Linq2Sql DataContext,它不允许你进行包含。
要获取include扩展方法,请使用项目程序集中的Typed DataContext(EF4.x / EF5)