Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在一对多关系中包含两个表中的值_C#_Linq_Linq To Sql - Fatal编程技术网

C# 如何在一对多关系中包含两个表中的值

C# 如何在一对多关系中包含两个表中的值,c#,linq,linq-to-sql,C#,Linq,Linq To Sql,我整天都在这件事上胡闹,快把我逼疯了 我想做的是: 我有两张桌子:问题/答案 问题表包括:quesID、quesDescr 答案表包括:answerID、quesID、answer 基本上,答案表是每个问题的选项。例如: quesID | quesDescr 1 |你最喜欢什么颜色 回答|提问|回答 1 | 1 |红色 2 | 1 |蓝色 等等 在我的表单页面上,我想抓取问题及其所有答案选项,以显示给最终用户。似乎我可以把问题列出来,但我不能把问题和答案都放在我的观点上 我想我会在我的模型中处理

我整天都在这件事上胡闹,快把我逼疯了

我想做的是:

我有两张桌子:问题/答案

问题表包括:quesID、quesDescr 答案表包括:answerID、quesID、answer

基本上,答案表是每个问题的选项。例如:

quesID | quesDescr

1 |你最喜欢什么颜色

回答|提问|回答

1 | 1 |红色

2 | 1 |蓝色

等等

在我的表单页面上,我想抓取问题及其所有答案选项,以显示给最终用户。似乎我可以把问题列出来,但我不能把问题和答案都放在我的观点上

我想我会在我的模型中处理查询(linq到sql)。。。但这并没有给我答案:

public List<nonEEPreQue> getPreQuestions()
        {
            return fDB.nonEEPreQues.OrderBy(q => q.preQuesOrder).ToList();
        }
那么,上面的说法正确吗?那么,在我看来,如何访问问题和答案(我假设是在foreach循环中)


非常感谢您的帮助

在您的
getPreQuestions()
中,您应该查询答案并使用
Include()
包含问题


这将检索一个答案列表,其中包含一个加载了问题的属性。。。然后将该列表传递给视图。

因为您已经在使用Linq to SQL并使用匿名类型,所以请保持简单,并以关系方式选择所需内容

var quesList = from ques in preQ.nonEEPreQues
               select new
               {
                   QuestionID = ques.preQuesID,
                   QuestionTxt = ques.preQuesDescr,
                   Answers = (from  an in preQ.nonEEPreQuesAnswers
                              where an.preQuesID == ques.preQuesID
                              select an)
               };

这将为您提供一个对象,该对象包含问题的QuestionTxt和QuestionID,以及一组直接附加到问题的
noneeRequestanswer
对象。这将使枚举它们变得更容易,而且它也应该是可绑定的(如果您使用的是gridview或repeater)。

嗨,Joel-我需要在我的视图上声明什么模型才能实现这一点?@EddieWesley:我的假设是,您将构建自己的模型来处理以这种方式键入的问题。此示例使用匿名类型,但预构建的模型会使其更容易。谢谢-我将稍微处理一下。我并没有和我发布的东西结婚——我真的想在这里采取最好的方法。我甚至在考虑使用存储过程,如果这样做更有意义的话。我有一个dbml模型,如果possible@EddieWesley:我尽可能使用通过将表导入dbml自动生成的类。到目前为止,我的dbml类还不支持的东西我已经能够通过自定义模型来完成。谢谢。所以-我被困的地方是风景。以上面的示例为例,它可以在我的模型代码文件中。。还是我的控制器?这会作为IEnumerable传递给视图吗?我很抱歉,如果这些可能是显而易见的,这只是我的第二个项目。谢谢,罗米亚斯。不幸的是,我认为Include()不适用于LINQtoSQL?
var quesList = from ques in preQ.nonEEPreQues
               select new
               {
                   QuestionID = ques.preQuesID,
                   QuestionTxt = ques.preQuesDescr,
                   Answers = (from  an in preQ.nonEEPreQuesAnswers
                              where an.preQuesID == ques.preQuesID
                              select an)
               };