首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >linqpad - SubmitChanges扩展

linqpad - SubmitChanges扩展
EN

Stack Overflow用户
提问于 2011-12-02 19:31:40
回答 2查看 1.2K关注 0票数 1

可以让SubmitChanges()在扩展方法中工作吗?

我目前有这个:

代码语言:javascript
复制
void Main()
{
    // Write code to test your extensions here. Press F5 to compile and run.
    Helper.ConfirmSubmitChanges();
}

public static class Helper
{
    // Write custom extension methods here. They will be available to all queries.
    public static void ConfirmSubmitChanges() 
    { 
        if (MessageBox.Show("Save?", "Do you really want to save all changes?", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
        {
            SubmitChanges(); 
        }
    }
}

// You can also define non-static classes, enums, etc.

但是SubmitChanges()在这里是断章取义的。有没有什么我可以从我的查询中传递的东西,可以使用这个扩展来使它工作?

谢谢,Kohan

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-02 22:41:32

您可以通过将当前上下文(this)传递给静态方法来完成此操作:

你的程序:

代码语言:javascript
复制
void Main()
{
    //Do Stuff  
    ConfirmSubmitChanges(this);
}

My Extensions.linq

代码语言:javascript
复制
static void ConfirmSubmitChanges(DataContext context)
{
    if (MessageBox.Show("Submit Changes?", "OK?", MessageBoxButtons.YesNo) == DialogResult.Yes)
    {
        context.SubmitChanges();
        "Saved".Dump();
    }
}
票数 2
EN

Stack Overflow用户

发布于 2012-02-03 01:20:50

如果有人想知道,在将"this“传递给扩展之后。这是我最终创建的。它很好,因为它还确认了更改的数量。

代码语言:javascript
复制
#region ConfirmSubmitChanges(DataContext dc)
public static void ConfirmSubmitChanges(DataContext dc)
{
    ConfirmSubmitChanges(dc, string.Empty);
}

public static void ConfirmSubmitChanges(DataContext dc, string AdditionalMessage)
{
    ChangeSet set = dc.GetChangeSet();
    var countChanges = 0;
        countChanges += set.Deletes.Count();
        countChanges += set.Inserts.Count();
        countChanges += set.Updates.Count();

    if (countChanges>0) {
        if(!string.IsNullOrEmpty(AdditionalMessage)) { AdditionalMessage = "\n\n(" + AdditionalMessage + ")"; }
        if (MessageBox.Show("Do you really want to save "+ countChanges+" changes?" + AdditionalMessage, "Save all changes?", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
        {
            dc.SubmitChanges();
        }
    }
}

#endregion
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8355686

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档