我目前正在用C#编写MVVMC应用程序(利用实体框架)。
加载和存储配置值的正确(最佳实践)方法是什么?
首先,存在如何存储配置设置的问题...将表格设计为这样的最佳方式:tblConfig(configid,configref,configval)或类似这样:tblConfig(configid,option1 ,option2,option3) - 用有意义的名称(例如logoimage)替换option1等
接下来,有如何在应用程序中检索/存储设置;我的想法是将配置存储在数据库的表中,然后创建一个静态类 - 如下所示:
public static class ConfigClass
{
public static ConfigClass()
{
//load values from database
ContextClass SiteContext = new ContextClass();
logoImage = SiteContext.ConfigSettings.ToList().Find(c => c.configreference == "logoimage").configvalue;
admintoauthoriseaccounts = Convert.ToBoolean(SiteContext.ConfigSettings.ToList().Find(c => c.configreference == "logoimage").configvalue);
defaultaccountrole = Convert.ToInt32(SiteContext.ConfigSettings.ToList().Find(c => c.configreference == "logoimage").configvalue);
}
public static string logoImage = "";
public static bool admintoauthoriseaccounts = true;
public static Int32 defaultaccountrole = 1;
}
ConfigSetting DbSet存储库的类:
public class ConfigSetting
{
public string configreference { get; set; }
public string configvalue { get; set; }
}
这是个好主意吗?或者我应该忘记静态类,只是直接从DbSet存储库中读取设置?
感谢。
答案 0 :(得分:3)
最常见的做法是在项目的app.config(或web.config)中存储配置 - 包括连接到该数据库的字符串。您存储在数据库中的任何设置只会添加值,我想,允许用户修改。
如果那是你的目标:
否则:
无论选择如何: