我目前正在使用实体框架(.net 4)使用LINQ语句从第三方数据库中读取。不幸的是,在编译时我不知道我将从哪个表中读取 - 实际上,在编译应用程序之后,可以将新表添加到此数据库中。要读取的表名将作为字符串参数传递给我的方法。
如果在编译时不知道表名,应如何处理这种情况?我甚至无法将这些表添加到我的数据模型中,因为它们可能尚不存在。虽然我喜欢linq的便利,但我采用了一种简单的方法。
谢谢!
答案 0 :(得分:1)
对于只能在运行时构造并且将返回不同形状类型的查询,您几乎不得不制作并执行您想要自己运行的SQL。 DataContext.ExecuteQuery(string query, params object[] parameters)
将成为你的朋友。
你可能已经这样做了,但是我建议将这部分代码分离到代码的一部分,执行查询,然后将结果放入强类型对象,然后再将其暴露给其他区域你的申请。确保你也清理表名。