gpt4 book ai didi

mysql - 使用 FirstOrDefault() 时 Entity Framework 更新多条记录

转载 作者:行者123 更新时间:2023-11-29 21:19:08 25 4
gpt4 key购买 nike

我现在有一个相当奇怪的问题让我头疼。我在一个项目中将 EF 与 MySQL 一起使用,当我想像这样更新数据库上的记录时

using (var context = new MyDbContext())
{
var record = (from d in context.Dictionary where d.CompanyName == companyName && d.Name == "Logo" select d).FirstOrDefault();
record.Value = _path;

context.SaveChanges();
}

然后,每条具有 d.Name == "Logo" 的记录都会因某种原因而更新,这意味着它会忽略 d.CompanyName == companyName 部分。有谁遇到过同样的问题或者知道如何解决吗?

提前致谢。

最佳答案

实际上,我不经常使用 EF Provider for MySQL,但我认为它是有效的。

问题可以分为两部分:选择和更新。 select 很好,如果您需要查看查询是什么,可以像这样拆分 select 语句

var query = (from d in context.Dictionary where d.CompanyName == companyName && d.Name == "Logo" select d);
var record = query.FirstOrDefault();

并查看查询变量(只需将其指向 Debug模式)。

关于您的问题,我可以想象的唯一原因是您没有以正确的方式配置 Dictionary 类。
我的意思是,当您运行 context.SaveChanges 时,会使用 Dictionary 的 Key 定义(查询的Where 部分)生成更新查询。如果键定义错误,则where子句也会错误。

关于mysql - 使用 FirstOrDefault() 时 Entity Framework 更新多条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35793313/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com