Select 简单。数据选择特定列
我对Simple.Data进行了调用,我想在其中限制要返回的列。但是我遇到了问题 这很好:Select 简单。数据选择特定列,select,simple.data,Select,Simple.data,我对Simple.Data进行了调用,我想在其中限制要返回的列。但是我遇到了问题 这很好: var db = Database.Open(); var questionIdRow = db.Question.FindByFriendlyId(friendlyId); if (questionIdRow == null) return Guid.Empty; return questionIdRow.QuestionId; 但是,以下操作不起作用(我得到一个Simple.Data.unso
var db = Database.Open();
var questionIdRow = db.Question.FindByFriendlyId(friendlyId);
if (questionIdRow == null) return Guid.Empty;
return questionIdRow.QuestionId;
但是,以下操作不起作用(我得到一个Simple.Data.unsolvableObjectException
“找不到列”)
简单的.Data文档给我的印象是,这就是限制所选列所需做的全部工作。请注意,选择只是选择稍后引用的同一列
实际异常在var questionIdRow=
行中抛出
有人能给我一些指导吗?这是一个常见的问题,事实上,在我们使用1.0之前,FindBy就被弃用了。问题是FindBy会立即返回一条记录,因此您不能继续对其调用查询方法 正确的方法是调用FindAllBy并以First或FirstOrDefault结束:
var db = Database.Open();
var questionIdRow = db.Question.FindAllByFriendlyId(friendlyId)
.Select(db.Question.QuestionId)
.FirstOrDefault();
if (questionIdRow == null) return Guid.Empty;
return questionIdRow.QuestionId;
这是一个常见的问题,实际上导致FindBy在1.0之前就被弃用了。问题是FindBy会立即返回一条记录,因此您不能继续对其调用查询方法 正确的方法是调用FindAllBy并以First或FirstOrDefault结束:
var db = Database.Open();
var questionIdRow = db.Question.FindAllByFriendlyId(friendlyId)
.Select(db.Question.QuestionId)
.FirstOrDefault();
if (questionIdRow == null) return Guid.Empty;
return questionIdRow.QuestionId;
答案对我来说已经足够好了,我使用FindBy是因为我认为它比FindAllBy更有效,但我想我会试试看它创建了什么样的sql,然后再把你和我弄得一团糟.“FirstOrDefault”在执行的sql中添加了一个“TOP 1”,所以它尽可能的高效.答案对我来说已经足够好了,我之所以使用FindBy,是因为我认为它比FindAllBy更高效,但我想我会试试看,看看它会创建什么样的sql,然后再把你我弄得一团糟..“FirstOrDefault”会在执行的sql中添加一个“Top1”,所以它会尽可能地高效。