将更改保存到不属于当前数据库上下文的对象

发布于 2024-12-06 04:51:49 字数 386 浏览 0 评论 0原文

我有一个 Web 服务来获取一个对象,例如

public Blah GetBlah(int blahID) {
   var db = new BlahContext...
}

另一个 Web 服务

public UpdateBlah(int blahID) {
    var db = new BlahContext...
    var blah = GetBLah(blahID);
    blah.someVariable = false;
    ... // how do I save this object?
}

,但我不认为我可以执行 SubmitChanges,因为该对象不是在同一上下文中创建的。

I have a web service to get an object, such as

public Blah GetBlah(int blahID) {
   var db = new BlahContext...
}

and another web service

public UpdateBlah(int blahID) {
    var db = new BlahContext...
    var blah = GetBLah(blahID);
    blah.someVariable = false;
    ... // how do I save this object?
}

But I don't think I can do SubmitChanges as the object was not created in the same context.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

流星番茄 2024-12-13 04:51:49

当您调用 UpdateBlah 时,您需要将对象作为参数传递,以便可以更新数据。

然后您可以选择两种选择:

1. 映射(手动或自动)

public UpdateBlah(object blahUpdated) {
    var db = new BlahContext...
    var blah = GetBLah(blahID);
    // manually mapping
    blah.someVariable = blahUpdated.someVariable;
    // or using some kind to automapper (automapper.codeplex.com)
    ... 
    db.SubmitChanges()
}

2. 附加

您可以将对象附加到新的数据上下文

public UpdateBlah(object blahUpdated) {
    var db = new BlahContext...
    db.blahs.Attach(blahUpdated);
    db.SubmitChanges()
}

When you call UpdateBlah you need to pass the object as parameter so you can have the data to update.

Then you can choose two alternatives:

1. Mapping (manual or auto)

public UpdateBlah(object blahUpdated) {
    var db = new BlahContext...
    var blah = GetBLah(blahID);
    // manually mapping
    blah.someVariable = blahUpdated.someVariable;
    // or using some kind to automapper (automapper.codeplex.com)
    ... 
    db.SubmitChanges()
}

2. Attach

You can attach the object to the new datacontext

public UpdateBlah(object blahUpdated) {
    var db = new BlahContext...
    db.blahs.Attach(blahUpdated);
    db.SubmitChanges()
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文