找不到查询'Select'没有找到

本文关键字:找不到 Select 查询 | 更新日期: 2023-09-27 18:13:10

错误是:

找不到源类型的查询模式的实现"System.Data.Entity.Database"。'选择'未找到。

我的相关代码是:

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

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

找不到查询'Select'没有找到

我认为你的错误是你试图直接从.Database中选择一些东西,而不是从表中。而不是下面的代码:

from UiType in db.Database

试试这样做:

from UiType in db.UiTypes
select UiType.AdvancedUi;

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

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

在我的例子中,我通过更改

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

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

var results = db.MyStoredProc();    

HTH .

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

看下面这个查询:

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

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

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

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

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

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