无法找到未找到查询“选择”的实现

时间:2014-07-15 07:42:24

标签: c# database linq

我的错误是:

  

无法找到源类型的查询模式的实现   ' System.Data.Entity.Database&#39 ;. '选择'没找到。

我的相关代码是:

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

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

3 个答案:

答案 0 :(得分:3)

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

from UiType in db.Database

尝试这样的事情:

from UiType in db.UiTypes
select UiType.AdvancedUi;

这应该有效,因为表UiTypes将实现IEnumerable接口。

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

答案 1 :(得分:0)

在我的情况下,我通过更改:

解决了错误
var results = db.MyStoredProc().Select(x => x);

或者,

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

要,

var results = db.MyStoredProc();    

HTH。

答案 2 :(得分:0)

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

请查看以下查询:

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

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

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

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

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

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