C# nge您的select toselect q能否向我们展示问题模型?您的第一个示例是返回类型为Question的对象,但您的第二个示例是返回匿名类型。这是你想要的吗?您可以将选择更改为select q我收到一个新错误:“无法在LINQ to Entitie

C# nge您的select toselect q能否向我们展示问题模型?您的第一个示例是返回类型为Question的对象,但您的第二个示例是返回匿名类型。这是你想要的吗?您可以将选择更改为select q我收到一个新错误:“无法在LINQ to Entitie,c#,asp.net-mvc,linq,C#,Asp.net Mvc,Linq,nge您的select toselect q能否向我们展示问题模型?您的第一个示例是返回类型为Question的对象,但您的第二个示例是返回匿名类型。这是你想要的吗?您可以将选择更改为select q我收到一个新错误:“无法在LINQ to Entities查询中构造实体或复杂类型“ProjectSiteModel.Question”。而且它仍然拒绝将Model.QuestionOptions视为问题模型的一部分。。我想发布模型以供提问,但它太长,无法包含在评论中。似乎您有不同类型的类问题。尝试


nge您的select to
select q
能否向我们展示问题模型?您的第一个示例是返回类型为
Question
的对象,但您的第二个示例是返回匿名类型。这是你想要的吗?您可以将选择更改为
select q
我收到一个新错误:“无法在LINQ to Entities查询中构造实体或复杂类型“ProjectSiteModel.Question”。而且它仍然拒绝将Model.QuestionOptions视为问题模型的一部分。。我想发布模型以供提问,但它太长,无法包含在评论中。似乎您有不同类型的类
问题
。尝试指定
Template.Models.Question
而不是
ProjectSiteModel.Question
我相信您已经找到了我的主要问题-关于DB的文档很少。我依赖于edmx。你能给我举个例子说明这个场景的viewModel是什么吗?你真的启发了我。我仍然有这个选择的问题,但您的指示让我很好地了解了如何创建ViewModels。非常感谢您的帮助。我收到一个新错误:“无法在LINQ到实体查询中构造实体或复杂类型“ProjectSiteModel.Question”。而且它仍然拒绝将Model.QuestionOptions作为问题模型的一部分。。我想发布模型以供提问,但它太长,无法包含在评论中。似乎您有不同类型的类
问题
。尝试指定
Template.Models.Question
而不是
ProjectSiteModel.Question
我相信您已经找到了我的主要问题-关于DB的文档很少。我依赖于edmx。你能给我举个例子说明这个场景的viewModel是什么吗?你真的启发了我。我仍然有这个选择的问题,但您的指示让我很好地了解了如何创建ViewModels。非常感谢你的帮助。
    // GET: /Questions/ViewQuestion/5
    public ActionResult ViewQuestion(int? id)
    {
        if (id == null)
        {
            return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
        }
        Question question = db.Questions.Find(id);
        if (question == null)
        {
            return HttpNotFound();
        }
        return View(question);
    }
@model Template.Models.Question

@{
    ViewBag.Title = "Details";
}
<div>
    <h4>Question #@Model.questionId</h4>
    <hr />
<h1> @Html.DisplayFor(model => model.question1)</h1>
<ul>
    @foreach (var item in Model.QuestionOptions)
    {
        <li>@Html.DisplayFor(modelItem => item.questionOption1)</li>
    }
</ul>
        public ActionResult ViewQuestion(int? id)
    {
        var pageId = id;
        var question = from q in db.Questions
                       where q.pageId == pageId
                       orderby q.ranking
                       select new { q.questionId,
                       q.questionType, q.question1}
                       ;

        return View(question.ToList());
    }
@model IEnumerable<Template.Models.Question>

@{
    ViewBag.Title = "View question;";
}

<div>
    @foreach (var item in Model) {
    <h4>Question </h4>
    <hr />
    <h1> @Html.DisplayFor(model => item.question1.AsEnumerable())</h1>

    <ul>
        @foreach (var item in Model.QuestionOptions)
        {
            <li>@Html.DisplayFor(modelItem => item.questionOption1)</li>
    }
</ul>
}
var question = from q in db.Questions
               where q.pageId == pageId
               orderby q.ranking
               select new { q.questionId,
                            q.questionType, 
                            q.question1 };
var question = from q in db.Questions
               where q.pageId == pageId
               orderby q.ranking
               select new Template.Models.Question( )
                          { questionId = q.questionId,
                            questionType = q.questionType, 
                            question1 = q.question1 };
var questions = from q in db.Questions
                where q.pageId == pageId
                orderby q.ranking
                select q;
public class QuestionViewModel
{
    public int QuestionId { get; set; }
    public string QuestionType { get; set; }
    public string QuestionText { get; set; }
    // datatypes are only a guess from me, you need to adapt them
}
@model IEnumerable<QuestionViewModel>
select new { q.questionId,
                       q.questionType, q.question1}
select new Template.Models.Question{ q.questionId,
                       q.questionType, q.question1}
namespace Template.Models
{
using System;
using System.Collections.Generic;

public partial class Question
{
    public Question()
    {
        this.QuestionOptions = new HashSet<QuestionOption>();
        this.Responses = new HashSet<Response>();
    }

    public int questionId { get; set; }
    public int eventId { get; set; }
    public int pageId { get; set; }
    public string question1 { get; set; }
    public int questionType { get; set; }
    public Nullable<int> linkedTo { get; set; }
    public Nullable<int> options { get; set; }
    public Nullable<int> ranking { get; set; }

    public virtual ICollection<QuestionOption> QuestionOptions { get; set; }
    public virtual QuestionType QuestionType1 { get; set; }
    public virtual ICollection<Response> Responses { get; set; }
    }
}