我有以下Linq声明:
db.AdminTests
.Include(t => t.AdminTestQuestions)
.ToList();
这给了我一个AdminTests列表,其中每个都有一个AdminTestQuestions集合:
public class AdminTest
{
public AdminTest()
{
this.AdminTestQuestions = new List<AdminTestQuestion>();
}
public int AdminTestId { get; set; }
public virtual ICollection<AdminTestQuestion> AdminTestQuestions { get; set; }
}
AdminTestQuestions中返回的数据是包含此信息的集合:
public partial class AdminTestQuestion
{
public int AdminTestQuestionId { get; set; }
public int AdminTestId { get; set; }
public System.Guid QuestionUId { get; set; }
public virtual AdminTest AdminTest { get; set; }
// I would like to add subTopicId here
// I would like to add title here
}
有没有办法可以将其他信息返回到这个集合中?首先,我需要添加几个虚拟参数吗?第二,如何/可以用LINQ做到这一点?
具体来说,我想要的是添加另外两个基于QuestionUId的数据。我想添加&#34;标题&#34; (来自问题表)和&#34; SubTopicId&#34; (来自问题表)。这些可以通过某种方式加入问题表然后到问题表来获得:
public class Question
{
public int QuestionId { get; set; }
public int ProblemId { get; set; }
public Guid QuestionUId { get; set; }
// I think I will need to add this code here but I did not do it yet
// public Question() {
// this.AdminTestQuestions = new HashSet<AdminTestQuestion>();
// }
// public virtual ICollection<AdmintestQuestion> AdminTestQuestions { get; set; }
}
public class Problem
{
public Problem()
{
this.Questions = new HashSet<Question>();
}
public int ProblemId { get; set; }
public int SubTopicId { get; set; }
public virtual SubTopic SubTopic { get; set; }
public virtual ICollection<Question> Questions { get; set; }
}
答案 0 :(得分:1)
简单,不,你不能使用在编译时定义的类型。您的linq查询在运行时运行,并绑定到编译时可用的类型。
您唯一的解决方案是创建一个新的匿名类型,但这是一个完全不同的解决方案。