【发布时间】:2018-04-23 14:57:04
【问题描述】:
我遇到了一个小问题。我想根据 ID 删除一行。但我一直在删除我所有的行。
这是我的数据层中的代码。您可以将“eigenaar”一词读作“所有者”。
public void removeEigenaar(int eigenaarID)
{
transaction = connection.BeginTransaction();
try
{
using (context = new MyDbContext(connection, false))
{
context.Database.Log = (string message) => { Console.WriteLine(message); };
context.Database.UseTransaction(transaction);
//----------------------------
Eigenaar e =
(from s in context.Eigenaars
where s.ID == eigenaarID
select s).First();
context.Eigenaars.Remove(e);
//----------------------------
context.SaveChanges();
}
transaction.Commit();
}
catch
{
transaction.Rollback();
throw;
}
}
如果我调试代码,我可以看到我的“e”被一个所有者填充。这就是我觉得很奇怪的地方。
编辑 sql
我的删除查询有效,它只是删除了很多。
【问题讨论】:
-
小贴士:如果您希望返回一个结果,请使用
.Single()而不是.First()以节省以后的麻烦 -
另外,为什么在 linq 语句中使用
s作为变量名?e不是更有意义吗? -
这里运行的 SQL 是什么?您正在打印它,所以它应该很容易弄清楚。
-
如果这就是你的要求,我使用 mysql
-
不,实际执行的 SQL 是什么?
标签: c# mysql entity-framework dbcontext