gpt4 book ai didi

c# - 使用 Linq 和 SQL 时如何防止将新记录插入表中?

转载 作者:行者123 更新时间:2023-11-30 21:26:15 25 4
gpt4 key购买 nike

创建映射到 SQL Server 表之一的新对象时,当我调用 SubmitChanges 时,LINQ 会在表中插入一条新记录。我想防止这种情况发生,但仍然需要我的新对象。

我了解自定义方法,但是无论如何都可以禁用此行为,以便它只更新现有记录并且永远不会插入新记录,无论我是否调用了MyTableClass myObject = new MyTableClass() 或不。

谢谢。

最佳答案

如果您希望数据上下文在插入时崩溃,您可以这样做:

partial class DataClasses1DataContext
{
public override void SubmitChanges(System.Data.Linq.ConflictMode failureMode)
{
if(GetChangeSet().Inserts.OfType<MyObject>().Any())
{
throw new InvalidOperationException("No inserts!");
}
base.SubmitChanges(failureMode);
}
}

有什么好处吗?

[原为:您可以简单地将其添加为“干净”吗 - 即 Attach(obj, false);

如果您不希望模型中存在该对象,为什么要将其添加到数据上下文中?]

关于c# - 使用 Linq 和 SQL 时如何防止将新记录插入表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/200785/

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