Sql server 在数据库中存储网站的系统设置和配置?

Sql server 在数据库中存储网站的系统设置和配置?,sql-server,asp.net-mvc,database-design,entity-framework-4.1,Sql Server,Asp.net Mvc,Database Design,Entity Framework 4.1,如何构造数据库?我使用实体框架和代码优先的存储库模式来编码模型 例如:我希望管理员设置要附加到每个用户名的字符串 我在考虑一个包含以下列的键值表(设置)设置SID,名称,值。使用此方法,我需要手动进入,创建一个记录名:AppendedToUsername,值:nil。然后,我会专门为我需要的每个设置编写存储库方法。例如 public string GetAppenedToUsername() { db.Settings.FirstOrDefault(s => s.Name == "

如何构造数据库?我使用实体框架和代码优先的存储库模式来编码模型

例如:我希望管理员设置要附加到每个用户名的字符串

我在考虑一个包含以下列的键值表(设置)<代码>设置SID,
名称
。使用此方法,我需要手动进入,创建一个记录名:
AppendedToUsername
,值:
nil
。然后,我会专门为我需要的每个设置编写存储库方法。例如

public string GetAppenedToUsername()
{
    db.Settings.FirstOrDefault(s => s.Name == "AppendedToUsername").Select(s => s.Value);
}

有没有更好的方法来设计这个数据库?

这是一个很好的解决方案。我只建议使用这些设置创建一个强类型类,并对它们使用缓存

缓存服务:

 public class CacheService
    {
        private ObjectCache Cache
        {
            get { return MemoryCache.Default; }
        }

        public object Get(string key)
        {
            return Cache[key];
        }

        public void Set(string key, object data, int cacheTime)
        {
            CacheItemPolicy policy = new CacheItemPolicy();
            policy.AbsoluteExpiration = DateTime.Now.AddMinutes(cacheTime);

            Cache.Add(new CacheItem(key, data), policy);
        }

        public bool IsSet(string key)
        {
            return (Cache[key] != null);
        }

        public void Invalidate(string key)
        {
            Cache.Remove(key);
        }
    }
应用程序设置:

public class AppSetting
{
    public const string StrSettingKey = "StrSetting";

    private CacheService CacheService { get; set; }
    private DbContext DbContext { get; set; }

    public AppSetting(ICacheService cache, DbContext db)
    {
        CacheService = CacheService;
        DbContext = db;
    }

    public string StrSetting
    {
        get
        {
            if (CacheService.IsSet(StrSettingKey))
            {
                return (string) CacheService.Get(StrSettingKey);
            }
            else
            {
                var value = DbContext.Settings.Single(s => s.Name == StrSettingKey).Select(s => s.Value);
                CacheService.Set(StrSettingKey, value, 60); //one hour
                return value;
            }

        }
        set
        {

            var item = DbContext.Settings.Single(s => s.Name == StrSettingKey);
            item.Value = value;
            DbContext.SaveChanges();
            CacheService.Set(StrSettingKey, value);

        }
    }

}

你能给出一些如何构造类的示例代码吗?