更改属性的值时如何更新数据库值?

时间:2019-05-22 06:49:50

标签: c#

我有此代码:

public static class Settings
{
    public static int Trk5 { get; set; }
}

Settings.Trk5 = 2;
db2.Update(new Setting { "Trk5", Value = val.ToString() });

以某种方式将数据库的更新与变量的设置结合起来是一个好主意,如果是的话,我该怎么做呢?

我可以将db2.Update组合到集合中吗?不知何故?

2 个答案:

答案 0 :(得分:1)

您可以让该属性保存在其设置器中(例如@Alsein建议)。为此,您需要将自动属性转换为完整属性。

也许这可能有效:

public static class Settings
{
    private static int trk5;

    public static int Trk5
    {
        get { return trk5; }
        set
        {
            if (trk5 != value)
            {
                trk5 = value;
                db2.Update(new Setting { "Trk5", Value = value.ToString() });
            }
        }
    }
}

Settings.Trk5 = 2;

但是,我怀疑您的db2.Update通话是否可以这种方式工作。您正在此处创建一个新的Setting实例,但未为"Trk5"值指定属性名称...

答案 1 :(得分:0)

您需要在属性内调用Update方法。

如果希望将其自动应用于每个属性,请考虑以下解决方案:

  1. Make a proxy that raises the changing event dynamically at runtime.

  2. Inserting the notification statically at build time