C# 访问SQL视图的动态数量

C# 访问SQL视图的动态数量,c#,sql,views,C#,Sql,Views,我相信这是一个强者 我有两个数据库。命运与源泉 在Destiny中,我有一个表,其中包含视图名称的列表 例如: GasPriceSourceID Name 1 ICIS Heren TTF Bid 2 ICIS Heren TTF Offer 3 ICIS Heren TTF Midspread 4 NPG Spot 8 AEQ SYS Sell 9 AEQ SYS Buy 10 ICIS Heren Gaspool Midspread 因此,首先我将在数据库上

我相信这是一个强者

我有两个数据库。命运与源泉

在Destiny中,我有一个表,其中包含视图名称的列表

例如:

GasPriceSourceID    Name
1   ICIS Heren TTF Bid
2   ICIS Heren TTF Offer
3   ICIS Heren TTF Midspread
4   NPG Spot
8   AEQ SYS Sell
9   AEQ SYS Buy
10  ICIS Heren Gaspool Midspread
因此,首先我将在数据库上调用View:ICIS-Heren-TTF-Bid:Source 然后ICIS Heren TTF报价等等

这将在C控制台应用程序中完成

通常我会使用ADO.NET实体数据模型。但这会创建数据库的静态模型,但视图每天都会被添加和删除

所有视图都返回3个内容:ID、日期和值

我需要将这些价格移动到数据库中的一个表中:Destiny


简而言之。Destiny有一个价格来源列表。每个来源都有很多价格,这些价格将放在Destiny上的一个表格中。

因为您没有提供足够的详细信息,只提供一些一般性的指针:

在应用程序中手动生成SQL字符串 不推荐使用,并且容易出现安全性、性能等问题

构建一个存储过程,该存储过程依次构建和执行SQL SELECT并返回一个游标 可以更安全一点,特别是可以避免SQL注入,因为存储过程将首先检查视图的存在

顺便问一下:当你访问这些视图时,你到底在做什么

编辑-从OP获得更多信息后:

我怀疑你的模型有点不对劲。。。您所描述的内容很容易通过使用一个包含Source、ID、Date和Value列的视图来解决


这将使所有的动态SQL和由此产生的问题都变得扑朔迷离。。。因为您可以使用WHERE Source='ICIS Heren TTF Bid'的普通查询,例如。。。任何其他技术,如EF和/或LINQ等,都是现成的……

动态sql。小心注射。添加了更多信息。请随意要求更多。啊,但我不控制源数据库的视图。我只控制命运。而且,在未来,价格可能会在命运号上的不同表格中出现。因此,查看x,y,z进入命运表a。x、 z,g转到关于命运等的表b。关于设计的第二部分没有问题。。。第一部分是。。。所以,在编辑之前,你会被我在答案中首先提到的选项所困扰。。。