我可以通过类型名称来获取实体吗?

时间:2015-10-23 07:14:19

标签: c# entity-framework linq

我可以通过类型名称获取实体吗? 我有很多实体,想要做常用的获取方法。

try
{
     Type objectType = Type.GetType("Type." + type.ToString() + ", Assembly", true);
     data = _myDbContext.Set<objectType >.Where(w => w.Id == id).FirstOrDefault();
     return data;
}
catch (TypeLoadException e)
{
}
catch (Exception e)
{
}

1 个答案:

答案 0 :(得分:0)

最好在Set方法中使用泛型类型,而不是担心反射。

public TEntity GetById<TEntity>(int id)
    where TEntity : class
{
    return _myDbContext.Set<TEntity>().Where(x => x.Id == id).FirstOrDefault();
}

用法:

Account myAccount = Repository.GetById<Account>(69);