我有一个Repository
类,它从DataSource
类中获取数据。
存储库:
public class Repository<TEntity> : IRepository<TEntity> where TEntity : class
{
protected readonly DataSource Context;
public Repository(DataSource context)
{
Context = context;
}
public TEntity Get(int id)
{
return Context.Set<TEntity>().Find(id);
}
}
数据源:
public class DataSource
{
public IEnumerable<TEntity> Set<TEntity>() where TEntity : class
{
switch (typeof(TEntity))
{
case :
break;
default:
break;
}
}
}
我必须检查TEntity
的类型并依赖它,选择返回List<Plane>
或List<Flight>
的方法,依此类推。我该怎么办,还是有其他方法?
答案 0 :(得分:2)
请勿切换。如果您需要针对不同类型的不同行为,请为这些类型编写强类型方法。 Generics should be generic。如果您要实现的行为不是通用行为,则不要使用通用行为。
public IEnumerable<Plane> Set<Plane>()
{
// ...
}
public IEnumerable<Flight> Set<Flight>()
{
// ...
}
答案 1 :(得分:-5)
请在启动开关盒之前尝试一下
var objectName = typeof(TEntity).Name;
然后检查该objectName是否大小写。