EF查询接收泛型,根据表名动态创建实例且用于EF的泛型参数

netnr
  • 387
public static void CreateInstance()
{
    using (var ru = new RepositoryUse())
    {
        //封的查询
        var list1 = ru.SysUserRepository.IQueryable().ToList();
        //自定义SQL语句
        var list2 = ru.Context.Set<SysUser>().FromSql("select * from sysuser").ToList();
                
        //以上是常规的查询

        //问题,SysUser 实体未知

        //页面传一个变量 
        string tableName = "SysUser";

        //这里通过tableName的参数动态创建一个SysUser的实体,且可以传到Set<TEntity>
        //stringToTEntity(tableName)

        //这个是C#动态创建实例,但是这里的dm是object 需要 as SysUser才能用
        var dm = Activator.CreateInstance(Type.GetType("Domain.SysUser"));
        var domain = dm as SysUser;

        //那么,说了这么多,有没有其它的方法来解决这个问题,或者说,改写Set方法
    }
}
回复
阅读 3.4k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进