检查上下文是否有某个表然后添加到此表

时间:2017-04-04 15:26:47

标签: c# entity-framework linq reflection

我有多个DbContexts,每个上下文都有一些DbSets,如

public class fooContext : DbContext 
{
    DbSet<fooA> fooA {get,set}
    DbSet<fooB> fooB {get,set}
}

public class barContext : DbContext 
{
    DbSet<barA> barA {get,set}
    DbSet<barB> barB {get,set}
}

和包含多个excelSheets的excel文件 为linqtosql正确编程 (工作表名称为fooA,fooB ...,第一行是属性名称,其余行是数据)

我可以看到,如果我有哪个上下文有fooA我可以在上下文中use something like this function

public DbSet Set(string "fooA")
{
  return base.Set(Type.GetType("fooA"));
}

但我没有将fooA添加到

的上下文

澄清这一点,通常当您想在fooARecord {/ 1}} {/ 1}}中添加fooA

fooContext

但我只有fooA作为字符串和fooARecord

P.S :不能使用linqtosql,因为oracle和我不能简单地将excel导入oracle coz太多表,用户需要能够在此过程之前更改此数据

1 个答案:

答案 0 :(得分:2)

要检查fooContext是否仅按名称具有特定类型的DbSet,您可以这样做:

make_qq <- function(dd, x) {
    dd<-dd[order(dd[[x]]), ]
    dd$qq <- qnorm(ppoints(nrow(dd)))
    dd
}