【问题标题】:Could not find an implementation of the query 'Select' not found找不到查询“选择”的实现
【发布时间】:2014-09-05 07:35:00
【问题描述】:

我的错误是:

找不到源类型的查询模式的实现 '系统.数据.实体.数据库'。未找到“选择”。

我的相关代码是:

DatabaseEntities db = new DatabaseEntities();   
var whichUi = from UiType in db.Database
              select  AdvancedUi;

我正在使用 linq 导入(其他线程上的常见答案)。

【问题讨论】:

  • 请参考这个答案:stackoverflow.com/a/8216107/213550 - db.Database 可能没有实现IEnumerable 接口。您还应该注意,不仅需要库的引用,还需要 using 语句。
  • 确定你已经使用 System.Linq 添加了;?
  • @VMAtm 我不明白那个线程中的答案:/.. 我会尝试使用,让你知道结果如何
  • 你需要'select UiType.AdvancedUI',而且很可能来自 db.Database.UiTypes 或同等的。

标签: c# database linq


【解决方案1】:

我认为您的错误是您尝试直接从.Database 中选择某些内容,而不是从表格中选择。而不是这段代码:

from UiType in db.Database

试试这样的:

from UiType in db.UiTypes
select UiType.AdvancedUi;

这应该可以工作,因为表 UiTypes 将实现 IEnumerable 接口。

您应该将表名放在 in 关键字之后。
UiType 只是一个占位符,可以是您想要的任何内容。请注意select 子句 - 您必须在此处使用占位符,而不是表名。

【讨论】:

  • 和我在 cmets 中写的差不多,但选择需要修复。
  • @VMAtm 我没有选择这样做prntscr.com/42u7nt 另外,为什么 uiTypeObject ;我的表没有被调用,这是有原因还是只是拼写错误?
  • @DavidG 请参考以上评论>
  • 就像我上面说的你必须把 UiType.AdvancedUI
  • 老实说,我认为您需要一门 Linq 基础课程,我相信它会解决您的所有问题。
【解决方案2】:

就我而言,我通过更改解决了错误:

var results = db.MyStoredProc().Select(x => x);

或者,

var results = from x in db.MyStoredProc()
              select x;

到,

var results = db.MyStoredProc();    

HTH。

【讨论】:

    【解决方案3】:

    查询语法/流畅语法背后的整个逻辑是选择一个整体的对象或选择一个对象的属性。

    查看以下查询:

    var result = (from s in _ctx.ScannedDatas.AsQueryable()
                                      where s.Data == scanData
                                      select s.Id).FirstOrDefault();
    

    请注意,在 where 子句之后,我只选择了 ScannedData 对象Id 属性。 因此,要回答您的问题,如果 AdvancedUi 是 UiTypes 类 的属性,那么您的查询应该更像:

    var result = from UiType in db.UiTypes
                 select UiType.AdvancedUi;
    

    或者,如果您想从一个表中返回所有数据,比如 ScannedDatas,那么您的查询将是:

    var listResult = (from d in _ctx.ScannedDatas
                                  select d).ToList();
    

    希望这能回答你的问题,我的朋友。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-18
      • 1970-01-01
      • 1970-01-01
      • 2012-01-03
      • 2018-02-24
      • 2013-05-30
      • 2012-04-06
      • 2017-10-22
      相关资源
      最近更新 更多