【发布时间】:2012-08-06 20:33:41
【问题描述】:
为了简化为单元测试创建假数据,我想要一个可以创建通用实体的函数(我将其用作许多其他类的基础对象)。该实体有一个索引,为了生成一个新索引,我想简单地找到当前最高的数字并加一个。
我在很多其他类中使用 Index,并且希望使这个函数尽可能通用。 我的问题是我不知道如何在我的通用函数中指定要使用的 DbSet GetMaxID。
这是我目前得到的:
private Entity CreateGenericEntity()
{
return new Entity()
{
Guid = Guid.NewGuid(),
Index = GetMaxID<Entity>(x => x.Index) + 1,
};
}
private int GetMaxID<TEntity>(Expression<Func<TEntity, int>> expression)
{
return _repository.Set<TEntity>().Max(expression);
}
_repository有一堆不同的IDbSets属性,比如
public IDbSet<Customers> Customers{ get; set; }
public IDbSet<Orders> Orders{ get; set; }
等等
【问题讨论】:
标签: c# entity-framework lambda generic-programming dbset