如何使用 ASP.NET 具有存储库模式的对象数据源获取特定记录的列表
本文关键字:数据源 对象 获取 列表 记录 模式 NET ASP 何使用 存储 | 更新日期: 2023-09-27 18:35:36
我是一个新的 ASP.NET Webforms开发人员。我现在正在学习如何将ObjectDataSource
与实体框架和存储库模式一起使用。我现在正在努力解决的是使用带有ListView
控件的ObjectDataSource
从表中检索特定的项目列表。
在数据库的配置表中,我有 10 条记录。我只想检索 7 条记录。那我该怎么做呢?如何将此 ID 列表提供给ObjectDataSource
,以便检索这 7 条记录而不是所有记录?
ASP.NET 代码:
<asp:ListView ID="lvConfigs" runat="server"
DataSourceID="odsConfig" DataKeyNames="Id">
<ItemTemplate>
<div class="col-xs-12 col-sm-6 col-md-3">
<div class="thumbnail wow fadeInUp" data-wow-delay=".1s">
<img src="../Assets/images/team/member1.png" alt="">
<div class="caption">
<h4>
<%#Eval("Value") %>
</h4>
<p>
<%#Eval("Entry") %>
</p>
</div>
</div>
</div>
</ItemTemplate>
<EmptyDataTemplate>
<span>No data was returned.</span>
</EmptyDataTemplate>
</asp:ListView>
<asp:ObjectDataSource ID="odsConfig" runat="server"
TypeName="Test.BLL.ConfigBL"
DataObjectTypeName="Test.Models.T_Config"
SelectMethod="GetConfigs"></asp:ObjectDataSource>
这是SysConfigRepository
类的代码:
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);
}
我认为这应该可以:
public List<T_SysConfig> GetSysConfigs(List<int> ids)
{
List<T_SysConfig> sysConfigObjs = GetSysConfigs().ToList();
List<T_SysConfig> result =(from c1 in sysConfigObjs
join c2 in ids on c1.Id equals c2
select c1).ToList();
return result;
}
添加另一个方法以从 ID 列表中获取配置列表