【发布时间】:2019-01-23 11:55:27
【问题描述】:
我目前在检索数据集、更改数据集并调用 SubmitChanges 以将更改保存回数据库时遇到一些 C# Linq to SQL DataContext 错误行为。
我四处搜索,发现 this SO-Question 几乎指出了我的确切问题。
短大纲:
- 我正在使用带有 SQLite 的 Linq to SQL,因此没有 VisualStudio 提供的设计器
- 我正在创建与 In-Memory-Database 的连接
- 我正在使用一个派生自 DataContext 的类,该类连接到基类和一个映射真实表的 Table 属性
-
我已经使用 Log 属性来检索发送到数据库的实际命令,如下所示:
UPDATE [Roles] SET WHERE ([Id] = @p0) AND ([Name] = @p1) -- @p0: Input String (Size = 4000; Prec = 0; Scale = 0) [ea34d99e-8ad5-4fa7-83f3-5cf3ac282da6] -- @p1: Input String (Size = 4000; Prec = 0; Scale = 0) [Role 1] -- Context: SqlProvider(Sql2008) Model: AttributedMetaModel Build: 4.7.3056.0
如您所见,SET 子句是空的,这是我目前无法理解的。
由于我很确定需要更多信息才能理解该问题,因此请随时向我提问,我非常乐意让您加入。
有没有机会在这里以 zip 文件或类似文件的形式获取代码?
【问题讨论】:
-
您使用 LINQ to SQL 而不是实体框架是否有特殊原因?
-
直到现在我还没有研究过 EF,所以 Linq 是作为我以前至少知道一点的框架出现的。 EF 有什么好处?我希望这不是投反对票的原因^^
-
LINQ to SQL 已经很多年没有被积极开发了。除非您有非常强烈的理由使用它,否则您应该考虑转向 EF。
-
好的,不知道这个事实。我试了一下,没有那么复杂(获胜的单元测试),而且工作起来很吸引人。感谢您为我指明正确的方向。
标签: c# linq-to-sql datacontext submitchanges