如何将集合中的哈希集正确导出到 XML
How to export a hashset inside a collection to XML properly
我有一个 SQL 数据库 table,它连接另外两个 table。
课程(Table 1),学生(Table 2)
加入的 table 被称为 StudentCourses
看起来像:
复合主键由 2 列组成:StudentID
、CourseID
当我通过 EDMX 将我的数据库添加到我的 C# 项目时,这个加入的 table 没有被添加。这在我的程序结束之前都是可以的,我需要将所有数据导出到 XML,包括一个名为 StudentCourses.xml
.
的 XML 文件
我可以使用course.Students 属性(一个hashset
)访问每个课程的学生列表,我可以使用student.Courses访问每个学生的课程列表属性(也是一个hashset
)。
我试图在导出过程中使用 foreach loop
嵌套学生列表,但这是不允许的:
XDocument documentStudentCourses = new XDocument(
new XDeclaration("1.0", "utf-8", "yes"),
new XComment("Contents of StudentCourses table in CourseroomScheduler database"),
new XElement("StudentCourses",
from c in CoursesCollection // a List<Course> object
select new XElement("Course",
foreach (var student in sc.Students) { new XElement("StudentID", student.StudentID); }, // this is not allowed
new XElement("CourseID", sc.CourseID))));
以这种方式访问 hashset
以导出到 XML 的最佳方式是什么?
我相信你想要的是以下内容。
var studentCourses = new XDocument(
new XDeclaration("1.0", "utf-8", "yes"),
new XComment("Contents of StudentCourses table in CourseroomScheduler database"),
new XElement("StudentCourses",
from c in CoursesCollection
select new XElement("Course", from student in c.Students
select new XElement("StudentID", student.StudentID))
)
);
但它与 Hashsets 的关系并不比任何其他类型的 eumerable 多。
我有一个 SQL 数据库 table,它连接另外两个 table。
课程(Table 1),学生(Table 2)
加入的 table 被称为 StudentCourses
看起来像:
复合主键由 2 列组成:StudentID
、CourseID
当我通过 EDMX 将我的数据库添加到我的 C# 项目时,这个加入的 table 没有被添加。这在我的程序结束之前都是可以的,我需要将所有数据导出到 XML,包括一个名为 StudentCourses.xml
.
我可以使用course.Students 属性(一个hashset
)访问每个课程的学生列表,我可以使用student.Courses访问每个学生的课程列表属性(也是一个hashset
)。
我试图在导出过程中使用 foreach loop
嵌套学生列表,但这是不允许的:
XDocument documentStudentCourses = new XDocument(
new XDeclaration("1.0", "utf-8", "yes"),
new XComment("Contents of StudentCourses table in CourseroomScheduler database"),
new XElement("StudentCourses",
from c in CoursesCollection // a List<Course> object
select new XElement("Course",
foreach (var student in sc.Students) { new XElement("StudentID", student.StudentID); }, // this is not allowed
new XElement("CourseID", sc.CourseID))));
以这种方式访问 hashset
以导出到 XML 的最佳方式是什么?
我相信你想要的是以下内容。
var studentCourses = new XDocument(
new XDeclaration("1.0", "utf-8", "yes"),
new XComment("Contents of StudentCourses table in CourseroomScheduler database"),
new XElement("StudentCourses",
from c in CoursesCollection
select new XElement("Course", from student in c.Students
select new XElement("StudentID", student.StudentID))
)
);
但它与 Hashsets 的关系并不比任何其他类型的 eumerable 多。