如何在代码隐藏中使用存储库模式获取数据?

How to get data using Repository pattern in the code-behind?

我是一名新的 ASP.NET WebForms 开发人员,我现在正在努力使用存储库模式检索 .aspx 页面的代码隐藏中的数据。例如,假设我想在我的测试应用程序的关于我们页面的代码隐藏中获取系统配置的值。我该怎么做?

我已经拥有数据访问层中的所有存储库 classes 和接口。

这是 SysConfigRepository 的代码 class:

public class SysConfigRepository : IDisposable, ISysConfigRepository
    {
        //internal variable
        private readonly TestEntities dbContext = new DbdKurdoaEntities();

        public IEnumerable<T_SysConfig> GetSysConfigs()
        {
            return dbContext.T_SysConfig.ToList();
        }

        public T_SysConfig GetSysConfig(int id)
        {
            T_SysConfig sysConfigObj = GetSysConfigs().SingleOrDefault(s => s.Id == id);
            return sysConfigObj;
        }

        private bool disposedValue = false;

        protected virtual void Dispose(bool disposing)
        {
            if (!this.disposedValue)
            {
                if (disposing)
                {
                    dbContext.Dispose();
                }
            }
            this.disposedValue = true;
        }

        public void Dispose()
        {
            Dispose(true);
            GC.SuppressFinalize(this);
        }
    }

ISysConfigRepository 代码:

public interface ISysConfigRepository : IDisposable
    {
        IEnumerable<T_SysConfig> GetSysConfigs();
        T_SysConfig GetSysConfig(int sysConfigId);
    }

以前我在 DAL 中为每个实体设置一个 class,然后我可以通过编写以下代码在任何 .aspx 页面的代码隐藏中调用此 class 的对象:

SysConfig configObj = new SysConfig();
var result = configObj.GetSysConfigs(configObj);

那么我现在如何调用存储库的对象来获取任何 .aspx 页面的代码隐藏中的数据?

您可能需要在此处提供更多详细信息。您是否尝试过使用 class?有没有错误?

using (var sysConfigRepository = new SysConfigRepository())
{
    var configs = sysConfigRepository.GetSysConfigs ();
    // Do some stuff here
}

您的 SysConfigRepository 没有使用 Constructor!所以你不能得到 class 的新对象。通过放一个 public SysConfigRepository(){} 代码波纹管工作: 变量配置 = sysConfigRepository.GetSysConfigs ();