【发布时间】:2014-09-24 15:29:43
【问题描述】:
我通过这个通用方法在 C# 中使用存储库模式和实体框架:
public virtual IEnumerable<TEntity> Get(
Expression<Func<TEntity, bool>> filter = null,
Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>> orderBy = null,
string includeProperties = "")
{
IQueryable<TEntity> query = dbSet;
if (filter != null)
{
query = query.Where(filter);
}
foreach (var includeProperty in includeProperties.Split
(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
{
query = query.Include(includeProperty);
}
if (orderBy != null)
{
return orderBy(query).ToList();
}
else
{
return query.ToList();
}
}
public virtual TEntity GetByID(object id)
{
return dbSet.Find(id);
}
现在我想为 GetByID 编写一个重载来接受包含属性,就像我使用的 Get 方法一样。像这样的:
public virtual TEntity GetByID(object id, string includeProperties = "")
{
IQueryable<TEntity> query = dbSet;
foreach (var includeProperty in includeProperties.Split
(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
{
query = query.Include(includeProperty);
}
return ???
}
我应该返回什么?有什么建议吗?
【问题讨论】:
标签: c# entity-framework repository-pattern