我正在尝试将 xml 文件导入 MS SQL Server,它似乎可以工作,但它不能正常工作。这是xml文件本身:
<?xml version="1.0" encoding="utf-8"?>
<DOCTORS>
<DOCTOR>
<surname>Никитина</surname>
<name>Нина</name>
<patronymic>Петровна</patronymic>
<profession>Терапевт</profession>
<category>1</category>
<PATIENT>
<surname>Понамарев</surname>
<name>Олег</name>
<patronymic>Игнатьевич</patronymic>
<date_birth>12.02.1997</date_birth>
<category>Инвалид</category>
<NOTES>
<date_note>01.03.2020</date_note>
<diagnos>ОРВИ</diagnos>
<price>560</price>
</NOTES>
</PATIENT>
<PATIENT>
<surname>Николаев</surname>
<name>Георгий</name>
<patronymic>Николаевич</patronymic>
<date_birth>17.11.1985</date_birth>
</PATIENT>
</DOCTOR>
<DOCTOR>
<surname>Романовна</surname>
<name>Светлана</name>
<patronymic>Николаевна</patronymic>
<profession>Дерматолог</profession>
<category>6</category>
</DOCTOR>
</DOCTORS>
编码:
// импортирую данные доктора
var items_doctor = doc.Descendants("DOCTOR")
.Select(x => new
{
Surname = (string)x.Element("surname"),
Name = (string)x.Element("name"),
Patronymic = (string)x.Element("patronymic"),
Profession = (string)x.Element("profession"),
Category = (string)x.Element("category")
});
foreach (var el in items_doctor)
{
using (var context = new MyDbContext())
{
var doctor = new Doctor
{
Family_name = el.Surname,
Name = el.Name,
Patronymic = el.Patronymic,
Profession = el.Profession,
Category = el.Category
};
context.Doctors.Add(doctor);
context.SaveChanges();
}
}
MessageBox.Show("Операция завершена успешно!");
问题是,首先添加的所有医生都没有关于他的病人的信息,但是有必要加载关于一位医生和他的病人的信息,然后我们继续寻找下一位医生,等等。
你能告诉我如何从这样的文件中读取信息:
医生阅读所有信息 => 患者阅读所有信息 => NOTES 阅读所有信息 => 患者阅读所有信息
让我们继续下一个:
医生考虑了所有信息 => ...
这是解决方案
创建类
反序列化类
使用系统;使用 System.IO;使用 System.Xml.Serialization;
反序列化过程本身