如何使用Visual Studio数据库项目使用静态的源控制数据填充数据库?我已经尝试了以下所有三种策略,发现每一种策略都比上一次更好.我使用但不完全满意策略3.你有另一种选择吗?
将插入脚本放在"数据生成计划"文件夹中.引用"Script.PostDeployment.sql"文件中的脚本以将其包含在部署过程中.
- 优点:直截了当
- 缺点:slooooooow
- 缺点:后续部署必须首先删除静态数据或检查数据是否存在=>效率低下
使用最方便的方法(例如,可能是SSMS编辑表功能)第一次将数据插入数据库.使用bcp命令行实用程序提取该数据,以创建一堆数据文件并将其添加到项目中.创建"Scripts.PostDeployment.sql"文件中引用的脚本,该脚本为每个数据文件执行"批量插入"语句.
- 优点:比插入语句快得多
- 优点:可以利用SSMS编辑表功能
- 缺点:每个批量插入语句都需要数据文件的完全限定文件名,所以如果数据文件位于我的机器上"C" :\ Projects\Dev\Source\foo.dat"然后远程开发机器也必须在那个位置或批量插入语句失败
- 缺点:必须删除现有的静态数据,然后在后续部署中执行批量插入语句
在部署期间创建临时表以保存静态数据,并使用sql merge语句将这些表与目标表同步.见任的这些博客文章.
- 优点:似乎sql merge对问题有完美的语义
- 缺点:这个策略的逻辑在每个文件中重复 - 缺点:表定义作为sql合并文件中的临时表重复
是否有更优越的替代战略?我放弃了策略1,因为它太慢了.由于完全限定的文件名问题,我不喜欢策略2.我对战略3感到满意但并不激动.是否有最好的做法?
我喜欢解决方案资源管理器>右键单击> Visual Studio 2010的PowerCommands扩展的"打开包含文件夹"功能.我希望相当于"在源代码管理资源管理器中跳转到位置"功能.如何找到给定打开文件的TFS中的位置,或解决方案资源管理器中的文件(或者解决方案导航器中的文件是否具有Productivity Power Tools扩展)?
最好的答案是几次鼠标点击而没有键盘.下一个最佳答案是热键映射.
到目前为止,我找到的唯一解决方案是使用具有"在源代码管理中查找"功能的Productivity Power Tools扩展.可以右键单击结果列表中的文件"在Source Control Explorer中打开文件夹".此解决方案的缺点是需要多次点击,如果文件在不同文件夹中存在同名,则搜索结果可以匹配多个文件.
在Dynamics CRM中,我经常从业务用户那里获得创建报告的要求.业务用户了解并谈论实体显示名称和属性标签.要编写查询,我需要将它们映射到实体名称和属性名称.我想用一个查询来查看.
我将如何加入dbo.LocalizedLabelView视图以获取以下查询中的AttributeLabel列?我无法弄清楚ObjectId应该引用什么.(如果你能告诉我你是如何找到答案我会特别感激的!)
select
[EntityName] = entityNames.Name,
[EntityDisplayName] = entityDisplayNames.Label,
[AttributeName] = attributeNames.PhysicalName,
[AttributeDisplayName] = attributeDisplayNames.Label
--[AttributeLabel] = attributeLabels.Label
from
dbo.EntityView entityNames
inner join dbo.LocalizedLabelView entityDisplayNames
on entityDisplayNames.ObjectId = entityNames.EntityId
and entityDisplayNames.ObjectColumnName = 'LocalizedName'
left outer join dbo.AttributeView attributeNames
on attributeNames.EntityID = entityNames.EntityID
inner join dbo.LocalizedLabelView attributeDisplayNames
on attributeDisplayNames.ObjectId = attributeNames.AttributeID
and attributeDisplayNames.ObjectColumnName = 'DisplayName'
and attributeDisplayNames.LanguageID = entityDisplayNames.LanguageID
--inner join dbo.LocalizedLabelView attributeLabels
-- on attributeLabels.ObjectId = ?????
-- and attributeLabels.LanguageID = …Run Code Online (Sandbox Code Playgroud) 如果隐藏了Visual Studio 2010中的属性窗口的说明框,该如何显示?

例如,下图显示了说明框.它显示为"加载:每当用户加载表单时发生".
