C# 如何将几个附加字段添加到Linq查询的最低级别

C# 如何将几个附加字段添加到Linq查询的最低级别,c#,linq,C#,Linq,我有以下Linq声明: db.AdminTests .Include(t => t.AdminTestQuestions) .ToList(); 这给了我一个AdminTests列表,其中每个都有一个包含AdminTestQuestions的集合: public class AdminTest { public AdminTest() { this.AdminTestQuestions = new List&

我有以下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; }
}
是否有办法将其他信息返回到集合中?首先要这样做,我需要添加几个虚拟参数吗?第二,我如何/可以用LINQ做到这一点

具体来说,我想做的是添加另外两条基于QuestionUId的数据。我想添加“标题”(来自问题表)和“副标题”(来自问题表)。这些可以通过某种方式连接到问题表,然后连接到问题表来获得:

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; }
}
公开课问题
{
public int QuestionId{get;set;}
public int ProblemId{get;set;}
公共Guid问题UID{get;set;}
//我想我需要在这里添加这段代码,但我还没有这样做
//公众问题({
//this.AdminTestQuestions=new HashSet();
// }
//公共虚拟ICollection AdminTestQuestions{get;set;}
}
公共阶级问题
{
公共问题()
{
this.Questions=newhashset();
}
public int ProblemId{get;set;}
公共整型子主题ID{get;set;}
公共虚拟子主题子主题{get;set;}
公共虚拟ICollection问题{get;set;}
}

很简单,不可以,因为您正在使用编译时定义的类型。linq查询在运行时运行,并绑定到编译时可用的类型


您唯一的解决方案是创建一个新的匿名类型,但这是一个完全不同的解决方案。

您不能为
AdminTestQuestion
添加一个分部类并定义属性(和方法)如果这是唯一的方法,那么我可以创建一个匿名类型或定义另一个类并使用它。对不起,我应该在问题中提到这一点。
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; }
}