Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用于比较数据库模式和数据的应用程序_C#_Sql Server_Compare_Schema_Dac - Fatal编程技术网

C# 用于比较数据库模式和数据的应用程序

C# 用于比较数据库模式和数据的应用程序,c#,sql-server,compare,schema,dac,C#,Sql Server,Compare,Schema,Dac,我正在尝试做一个简单的windows窗体应用程序来比较两个数据库并提交更改或打印出更新脚本。为此,我发现Microsoft.SqlServer.DacFx可能会有所帮助。但是,安装框架后,DAC.compare不再可用。如您在以下链接中所见: 有人能帮忙吗?请举一些例子。在使软件包正常工作(目标x86和.Net 4.6或更高版本)后,比较应该像下面这样简单: var source = new SchemaCompareDatabaseEndpoint("YourSourceConnectionS

我正在尝试做一个简单的windows窗体应用程序来比较两个数据库并提交更改或打印出更新脚本。为此,我发现Microsoft.SqlServer.DacFx可能会有所帮助。但是,安装框架后,DAC.compare不再可用。如您在以下链接中所见:


有人能帮忙吗?请举一些例子。

在使软件包正常工作(目标x86和.Net 4.6或更高版本)后,比较应该像下面这样简单:

var source = new SchemaCompareDatabaseEndpoint("YourSourceConnectionStringHere");
var target = new SchemaCompareDatabaseEndpoint("YourTargetConnectionStringHere");
var comparison = new SchemaComparison(source, target);
var result = comparison.Compare();
var differences = result.GenerateScript("YourDatabaseNameHere");
string script = differences.Script;

你安装了吗?我的猜测是,你需要让你的应用专门针对x86来使用它。诚然,它很薄。还有其他选择吗?SSDT,我也在考虑这个选项。目标是比较模式、数据(如果需要)、提交有无异常的更改,最后生成一个比较脚本。难以置信的是,没有太多的信息。如果你想在自己的应用程序中包含实体框架,我打赌最新的实现将是实体框架。如果你只需要一个工具,SSDT是一个不错的选择:它允许你创建一个数据库项目,该项目带有比较数据库实例和创建脚本以同步其模式的选项。我想创建一个应用程序,它可以在其中进行比较和更新,如果你知道任何示例,我将不胜感激。@User10321649 redgate有一个工具可以做到这一点:由于有许多不同的变化和场景,您自己构建一个将是一项相当艰巨的任务,我怀疑您是否会找到一个学习的示例程序,因为创建这些工具的人会希望在投入精力后出售它们。。。首先,你可以看看这个答案:谢谢。这将只比较模式。顺便问一下,您是如何从DB提取到dacpac的。我能够将DB提取到bacpac文件data+schema中,但可以找到任何用于提取dacpac的文件。示例是否比较数据?我的示例仅比较架构,并且仅生成(或运行)应用更改以同步架构的脚本。我找不到任何方法使用Microsoft.SqlServer.DacFx的扩展来比较数据。Visual Studio 2017在IDE中提供了一个数据比较选项,您知道我们是否可以在C#项目中使用它吗?你知道我们可以引用的DLL来获取该命令吗?提前谢谢你我手头没有VS 2017-你可以试着通过procmon或类似的东西来追踪使用过的组件。我无法让它工作。。我的差异。脚本;调用始终返回null