1
我有兩個實體:如何創建一個左外連接和另一個表的計數的SQL?
public class AdminTest
{
public AdminTest()
{
this.AdminTestQuestions = new List<AdminTestQuestion>();
this.UserTests = new List<UserTest>();
}
public int AdminTestId { get; set; }
public string Title { get; set; }
public virtual ICollection<AdminTestQuestion> AdminTestQuestions { get; set; }
public virtual ICollection<UserTest> UserTests { get; set; }
}
public UserTest()
{
this.UserTestQuestions = new List<UserTestQuestion>();
}
public int AdminTestId { get; set; }
public int CreatedBy { get; set; }
public int UserTestId { get; set; }
public virtual AdminTest AdminTest { get; set; }
}
我可以用LEFT OUTER JOIN這些JOIN這樣的:
SELECT AdminTest.AdminTestId, AdminTest.Title, UserTest.CreatedBy FROM AdminTest
LEFT OUTER JOIN UserTest
ON AdminTest.AdminTestId = UserTest.AdminTestId
得到:
AdminTestId Title CreatedBy
1 A NULL
2 B 99
我也有一個表,列出每個adminTest中的問題:
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; }
}
我怎麼能修改我的SQL在附加表AdminTestQuestions加給的問題數是這樣的:
AdminTestId Title Questions CreatedBy
1 A 10 NULL
2 B 20 99
我使用LINQ與實體框架6這樣一個LINQ或SQL的解決方案將是一件好事。
或者 「計數(不同leftKey)」,或者 「總和(情況下rightKey爲null,則leftValue否則返回null結束)」 也可以你在找什麼。 – 2014-10-03 04:10:32