0

我想将此 SQL 查询转换为 C# 代码:

UPDATE Layouts 
SET LayoutDetails.modify('delete /ColumnLayout/LayoutColumns/Column[@PropertyId = sql:variable("@propId")]') 
WHERE LayoutId = 236

此查询删除 SQL Server 表中 XML 列中的一个节点。我想使用 LINQ 在 C# 中执行类似的操作。

4

2 回答 2

1

LINQ 没有类似的东西可用,因为 LINQ 不以这种方式与数据库交互。我不确定你用什么来连接你的数据库,但那里应该有一些东西可以让你这样做。

例如,Entity Framework 具有 SaveChanges(),它将对对象所做的任何更改作为 UPDATE sql 命令推送到您连接到的数据库。其他类型的 ORM 应该有类似的东西。

于 2017-10-25T04:43:25.477 回答
1

如果可以读取该 XML 列,那么您可以更新该列,然后使用SaveChanges()方法。喜欢

var details = (from lay in context.Layouts where lay.id = 236 select lay).firstOrdefalut();

details.ColumnLayout.LayoutColumns.PropertyId = yourId;

saveChange();

检查它会有所帮助

于 2017-10-25T05:37:10.457 回答