Visual studio 为什么VisualStudio数据集设计器会生成如此复杂的查询?

Visual studio 为什么VisualStudio数据集设计器会生成如此复杂的查询?,visual-studio,tableadapter,dataset-designer,Visual Studio,Tableadapter,Dataset Designer,我在MS Access数据库中有一个简单的表: ------------------- | Programs | |-----------------| | Id (PrimaryKey) | | Name | | Path | | Notes | ------------------- 然后使用Visual Studio向导生成相应的DataTable和TableAdapter 生成的Select语句看起来与预期的

我在MS Access数据库中有一个简单的表:

-------------------
| Programs        |
|-----------------|
| Id (PrimaryKey) |
| Name            |
| Path            |
| Notes           |
-------------------
然后使用Visual Studio向导生成相应的
DataTable
TableAdapter

生成的Select语句看起来与预期的一样:

SELECT Id, Name, Path, Notes
FROM Programs
但生成的Update语句非常复杂:

UPDATE Programs
SET          Id = ?, Name = ?, Path = ?, Notes = ?
WHERE  (Id = ?) AND (? = 1) AND (Name IS NULL) AND (? = 1) AND (Path IS NULL) OR
                  (Id = ?) AND (? = 1) AND (Name = ?) AND (Path IS NULL) OR
                  (Id = ?) AND (? = 1) AND (Name IS NULL) AND (Path = ?) OR
                  (Id = ?) AND (Name = ?) AND (Path = ?)
为什么它产生得如此复杂? 为什么不简单一些,像这样:

UPDATE Programs
SET Id = ?, Name = ?, Path = ?, Notes = ?
WHERE  (Id = ?)

因为查询检测自上次选择后是否对数据库进行了更改。您可以关闭这种检查以简化查询

从“TableAdapter配置向导”中,选择“高级选项…”并取消选中“使用乐观并发”


请参阅。

上的乐观并发(ADO.NET),因为查询会检测自上次选择后是否对数据库进行了更改。您可以关闭此类检查以简化查询

从“TableAdapter配置向导”中,选择“高级选项…”并取消选中“使用乐观并发”


请参阅上的乐观并发(ADO.NET).

这是一个隐藏的NSA查询HOA-闻起来很糟糕这是一个隐藏的NSA查询HOA-闻起来很糟糕谢谢@AMissico,现在我明白了。谢谢@AMissico,现在我明白了。