读取格式为XML

时间:2017-04-13 16:22:13

标签: c# xml asp.net-mvc

我有一个像XML文件一样写出来的字符串。一个例子如下:

string = <Employees><EmployeeId>1</EmployeeId>< ... ></Employees>

我将此保存在表中是因为我想审核更改,但我不想让多个表用于不同的审核。这是因为它会记录员工以外的事情的变化。因此,在数据库中使用XML样式字符串似乎是一个很好的建议。

现在到真正的生意。我想检查以确保员工实际上有更改,因为可以进入编辑页面,不进行任何更改,然后单击“保存”。截至目前,数据将写入数据库,并使用未更改的数据将其混乱。

我希望能够检查要保存的XML样式字符串是否在数据库中,所以如果<employees><employeeid>###</employeeid> == "changes"然后查看整个字符串是否等于另一个。基本上,首先检查employeeId,因为它不会发生变化,然后检查整个字符串以查看是否存在任何差异。我会检查前n个数字,但id号的长度可以是1到3。

另外,因为它的样式是XML,有没有一种简单的方法可以将它转换为像XML文件一样读取它并检查它?

1 个答案:

答案 0 :(得分:0)

在列中存储任意数据是一种非规范化形式。你无法在数据库级别上做很多事情。但是,SQL Server确实具有XML列类型。实体框架不支持与XML列的映射,因此它只是将XML视为标准字符串。但是,使用此列类型,您可以使用XPath表达式针对XML编写实际的SQL查询。

然后,最好的办法是将列键入XML,然后编写一个执行所需查询的存储过程。然后,您可以将此存储过程与实体框架一起使用。

有关XML列类型的详细信息,请参阅:https://msdn.microsoft.com/en-us/library/ms190798(SQL.90).aspx