gpt4 book ai didi

c# - 自动刷新数据到数据库

转载 作者:行者123 更新时间:2023-11-30 17:56:34 26 4
gpt4 key购买 nike

99% 确定这只是我不知道要搜索什么,所以请随时指出我正确的术语,但这里是。

我正在开发一个使用 Fluent NHibernate 将数据存储在 SQLite 后端的项目。它的负载非常低(启动时读取十几个左右,然后可能是高负载后每分钟写入或 2 个。)我正在尝试比其他任何东西都更容易编写,所以我想要它所以我可以只更改对象的属性,它会自动将其刷新到后端。就像我说的,这是一个负载非常低的单用户应用程序,因此即使(最坏的情况)每秒写入 5 次也不会那么引人注目。

我确实知道我可以在属性 setter 中设置保存,但我正在尝试减少冗余代码,这对我来说似乎过于冗余。

我要找的是这样的

class MainConfig
{
public virtual bool Enabled { get; set; }
}

然后能够将其绑定(bind)到控件,以便对控件的更改命中属性,然后将其保存。

使用大量额外代码,我可以完成它

class MainConfig
{
bool _Enabled;
public virtual bool Enabled
{
get { return _Enabled; }
set { _Enabled = value; mainSession.Save() }
}
}

其中 mainSession 是一个在整个应用程序生命周期内都是静态的 ISession

有什么建议吗?

最佳答案

这不是完美的解决方案,但我想到的是一个 T4 模板,它处理每个配置对象并为它及其所有属性构建代理。

class MainConfigProxy : MainConfig
{
public override Enabled
{
get { return base.Enabled; }
set
{
base.Enabled = value;
mainSession.Save();
}
}
}

然后构建一个包含基类及其代理的类型字典。

然后我的代码检查该字典,如果有代理,则加载/实例化它。不完美,但节省了很多输入

关于c# - 自动刷新数据到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14087165/

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