2012-07-13 55 views
0

我目前使用实体框架(.net 4)使用LINQ语句从第三方数据库中读取数据。不幸的是,在编译时,我不知道我将从哪个表读取 - 实际上,在我的应用程序编译完成后,可以将新表添加到此数据库中。读取的表名将作为字符串参数传递给我的方法。实体框架中的动态表名linq

当编译时不知道表名是否应该如何处理这种情况?我甚至无法将这些表添加到我的数据模型中,因为它们可能不存在。尽管我喜欢linq的便利,但我仍然是一个简单的方法。

谢谢!

回答

1

对于只能在运行时构建的查询并返回不同形状的类型,您几乎不得不制作并执行要运行的SQL。 DataContext.ExecuteQuery(string query, params object[] parameters)将成为你的朋友。

您可能已经这样做了,但我建议将这部分代码隔离到代码的一部分,执行查询的位置,然后将结果放到强类型对象中,然后将其暴露给其他区域的应用程序。确保你也清理了表名。