我的错误是:
无法找到源类型的查询模式的实现 ' System.Data.Entity.Database&#39 ;. '选择'没找到。
我的相关代码是:
DatabaseEntities db = new DatabaseEntities();
var whichUi = from UiType in db.Database
select AdvancedUi;
我正在使用linq import(在其他线程上的常见答案)。
答案 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();
希望这能回答你的问题我的朋友。