我有一张下面列的表。
_malloc
我正在尝试从此表中获取随机记录,但只有特定列,如id,question,opt1,opt2,opt3。目前我正在获取随机记录,但它正在获取所有列。我尝试下面的代码来获取具有特定列的记录
CREATE TABLE [dbo].[tbl_QuizQue](
[id] [int] IDENTITY(1,1) NOT NULL,
[question] [nvarchar](max) NOT NULL,
[opt1] [nvarchar](50) NOT NULL,
[opt2] [nvarchar](50) NOT NULL,
[opt3] [nvarchar](50) NOT NULL,
[ans] [nvarchar](50) NOT NULL
)
此处,我在dbUserEntities obj = new dbUserEntities();
// GET api/values
public IEnumerable<tbl_QuizQue> Get()
{
var result = obj.tbl_QuizQue.OrderBy(r => Guid.NewGuid()).Select(o => new { o.id, o.question, o.opt1, o.opt2, o.opt3 });
return result;
}
return result;
帮助我在哪里做错了。
答案 0 :(得分:2)
我这样做:
public IEnumerable<tbl_QuizQue> Get()
{
var result = obj.tbl_QuizQue.OrderBy(r => Guid.NewGuid())
.Select(o => new { o.id, o.question, o.opt1, o.opt2, o.opt3 })
.AsEnumerable()
.Select(q => new tblQuizQue {q.id, q.question, q.opt1, q.opt2, q.opt3);
return result;
}
首先只返回您感兴趣的列,您可以约束查询。然后,您可以将它们映射到您感兴趣的对象中。
答案 1 :(得分:0)
将Get函数的返回类型更改为
IEnumerable<dynamic>
并且您的代码将执行。
至于这是否是一个好主意,我想你必须顺从c#部落的习俗。
我很想一直使用它。