找不到源类型“System.Data.Entity.DbSet”的查询模式的实现
Posted
技术标签:
【中文标题】找不到源类型“System.Data.Entity.DbSet”的查询模式的实现【英文标题】:Could not find an implementation of the query pattern for source type 'System.Data.Entity.DbSet' 【发布时间】:2015-09-23 08:17:47 【问题描述】:我是第一次使用实体框架,但它似乎没有按预期工作。
我有这个代码:
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
public static class QueryClass
public static void Query()
using (var context = new MyDbEntities())
DbSet<MyTable> set = context.Tables;
var query = from val in set select value;
在查询行(确切地说“set”变量用红色下划线表示)我收到错误:
找不到源类型的查询模式的实现 'System.Data.Entity.DbSet'。找不到'选择'。缺少参考资料或 'System.Linq' 的 using 指令
MyDbEntities
是由实体框架以数据库优先的方式自动生成的,context.Tables
是一个DbSet
,因此它应该能够使用通过using
指令添加的Linq。为了避免误解,在这个类中我发现了以下内容:
public virtual DbSet<MyTable> Tables get; set;
为了使select
工作,我缺少什么?
谢谢。
【问题讨论】:
你的项目有参考 System.Core 吗? @Krishna 是的 【参考方案1】:您需要添加对 System.Data.Linq 的引用
System.Data.Linq 是特定于 LINQ-SQL 的(DataContext 等)
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Data.Linq;
using System.Linq;
public static class QueryClass
public static void Query()
using (var context = new MyDbEntities())
IQueryable<MyTable> qTable= from t in context.Tables
select t; // can you confirm if your context has Tables or MyTables?
Console.WriteLine("Table Names:");
foreach (var t in qTable)
Console.WriteLine(t.Name);//put the relevant property instead of Name
【讨论】:
我引用了 System.Data.Linq 并通过 using 指令添加了它,但它仍然给我这个问题 它不起作用。直接使用 from [...] 给了我错误_Could not find Type or Namespace 'from'_ 而在前面加上 var x = from [...] 给了我这篇文章的原始错误。 对不起,我在 VS 外面做这个。请再试一次。还要检查您的上下文是否将 MyTables 或 Tables 作为表数据库集名称 就我而言,我需要参考 System.Linq 在使用 Linq2SQL 时应完成对 System.Data.Linq 的引用,在所有其他情况下设置对 System.Linq 的引用。【参考方案2】:刚刚添加了一个参考using System.Linq;
并且工作正常,如上所述。
【讨论】:
以上是关于找不到源类型“System.Data.Entity.DbSet”的查询模式的实现的主要内容,如果未能解决你的问题,请参考以下文章
为啥实体框架 6.1.3 抛出“无法加载类型‘System.Data.Entity.Infrastructure.TableExistenceChecker’”
Entity Framework优化一:引发了“System.Data.Entity.Core.EntityCommandExecutionException”类型的异常
不能使用“System.Data.Entity.Core.Objects.ObjectQuery”类型的实例调用
无法将匿名类型从“System.Linq.IQueryable”转换为“System.Data.Entity.Core.Objects.ObjectQuery”
无法加载实体框架提供程序类型“System.Data.Entity.SqlServer.SqlProviderServices,EntityFramework.SqlServer”
EntityFramework.dll 中出现“System.Data.Entity.Core.MappingException”类型的异常,但未在用户代码中处理