我正在一个项目,该项目需要生成具有所有行和列的数据库表的xml文件。为此,我认为我需要查询数据库表,我不知道该怎么办。我正在使用asp.net core 2作为后端api部分,而在前端部分使用角度。我需要以JSON返回响应,但数据应为xml之类。我怎样才能做到这一点?我没有逻辑和技术(编码)帮助。请推荐任何代码。我的数据库中也有一些可为空的属性。我该如何解决这个问题?
答案 0 :(得分:1)
您可以参考下面的演示,该演示检索表中的数据并将其保存到XML文件。
1。假设我有一个Employee
模型,并将Employees
表映射到数据库中
public class Employee
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public DateTime DateOfBirth { get; set; }
public DateTime DateWhenJoined { get; set; }
}
//In ApplicationDbContext
public DbSet<Employee> Employees { get; set; }
2.Controller:
public class EmployeesController : Controller
{
private readonly ApplicationDbContext _context;
public EmployeesController(ApplicationDbContext context)
{
_context = context;
}
public void DownloadToXML()
{
List<Employee> emList = _context.Employees.ToList();
if (emList.Count > 0)
{
var xEle = new XElement("Employees",
from emp in emList
select new XElement("Employee",
new XElement("EmployeeID", emp.Id),
new XElement("CompanyName", emp.Name),
new XElement("DateOfBirth", emp.DateOfBirth),
new XElement("DateWhenJoined", emp.DateWhenJoined)
));
xEle.Save("test.xml");
}
}
}
3。调用该操作,它将在您的根目录中生成test.xml文件。
<? xml version="1.0" encoding="utf-8"?>
<Employees>
<Employee>
<EmployeeID>1</EmployeeID>
<CompanyName>Alex</CompanyName>
<DateOfBirth>2019-05-11T03:33:00</DateOfBirth>
<DateWhenJoined>2019-05-12T03:03:00</DateWhenJoined>
</Employee>
<Employee>
<EmployeeID>2</EmployeeID>
<CompanyName>Bob</CompanyName>
<DateOfBirth>0001-01-01T00:00:00</DateOfBirth>
<DateWhenJoined>2019-05-20T00:00:00</DateWhenJoined>
</Employee>
</Employees>