我有一个像XML文件一样写出来的字符串。一个例子如下:
string = <Employees><EmployeeId>1</EmployeeId>< ... ></Employees>
我将此保存在表中是因为我想审核更改,但我不想让多个表用于不同的审核。这是因为它会记录员工以外的事情的变化。因此,在数据库中使用XML样式字符串似乎是一个很好的建议。
现在到真正的生意。我想检查以确保员工实际上有更改,因为可以进入编辑页面,不进行任何更改,然后单击“保存”。截至目前,数据将写入数据库,并使用未更改的数据将其混乱。
我希望能够检查要保存的XML样式字符串是否在数据库中,所以如果<employees><employeeid>###</employeeid> == "changes"
然后查看整个字符串是否等于另一个。基本上,首先检查employeeId
,因为它不会发生变化,然后检查整个字符串以查看是否存在任何差异。我会检查前n个数字,但id号的长度可以是1到3。
另外,因为它的样式是XML,有没有一种简单的方法可以将它转换为像XML文件一样读取它并检查它?
答案 0 :(得分:0)
在列中存储任意数据是一种非规范化形式。你无法在数据库级别上做很多事情。但是,SQL Server确实具有XML
列类型。实体框架不支持与XML列的映射,因此它只是将XML视为标准字符串。但是,使用此列类型,您可以使用XPath表达式针对XML编写实际的SQL查询。
然后,最好的办法是将列键入XML,然后编写一个执行所需查询的存储过程。然后,您可以将此存储过程与实体框架一起使用。
有关XML列类型的详细信息,请参阅:https://msdn.microsoft.com/en-us/library/ms190798(SQL.90).aspx