如何转换(部署)一堆Sql文件?

时间:2015-11-05 22:07:38

标签: c# sql entity-framework linq transformation

我有一个小型Windows窗体应用程序,我已经持续开发了大约两年。因为我的老板保持(更改)使我的SQL查询非常复杂的要求,我的EntityFramework 6(Linq& Lamda)查询已经慢下来了。我已经尽可能多地调整它们(通过制作我的获取数据方法Async / Await并且只选择我需要的字段等等)。我发现直接使用SQL(如在SqlConnection()和SqlCommands()中)对于复杂的Sql查询要快得多。 我有一些在同一复杂查询中使用两个不同的数据库。例如:

SELECT
strStock,
IM.strMLILocation,
IM.strDescription,
IM.curLastCost,
(IM.decQuantityOnHand - (SELECT
    SUM(decQuantityShipped)
FROM NewCats.dbo.ZSA_TransactionDetail 
WHERE strStock = IM.strStock)
) AS decQuantityOnHand,
(SELECT
    SUM(PD.decQuantityRemaining)
FROM CATX.dbo.PO_TransactionDetail AS PD
WHERE PD.strStockItem = IM.strStock)
AS decQuantityOnBO
FROM CATX.dbo.IN_Master AS IM;

我使用SlowCheetah转换我的App.Config进行调试和发布。哪个对于EntityFramework连接字符串很好..但是我无法转换Query.sql文件(是的,它们是内容并在运行时读入) 所以我的问题是如何转换一堆Sql文件?如果我编写一个exe或批处理文件(Pre-Build)来解析它们(搜索和替换数据库名称),我应该使用项目目录或输出目录中的文件(〜/ bin / Release /)。

VS 2015 InstallShield LE 2015 框架4.6

提前致谢!

更新

我设法从@KiwiPiet评论中解决了我的问题。

我在每台服务器上创建了一个同义词,但名称相同但指向每台服务器上正确的表和数据库。

然后修改我的sql脚本以改为调用同义词。

如果您不介意@KiwiPiet,请将您的评论发布为答案,以便我为您提供信誉。

干杯,

0 个答案:

没有答案