如何使用FetchXml进行左连接?
考虑一个简单的SQL查询,如下所示:
select person.name, address.city from person
left join address on person.addressid = address.addressid
Run Code Online (Sandbox Code Playgroud)
如何使用FetchXml完成这样简单的事情?目前我的FetchXml查询如下所示:
<fetch mapping='logical'>
<entity name='person'>
<attribute name='name' />
<link-entity name='address' from='addressid' to='addressid'>
<attribute name='city' />
</link-entity>
</entity>
</fetch>
Run Code Online (Sandbox Code Playgroud) 前段时间我写了一个具有csv导入/导出功能的silverlight用户控件.这一直很好,直到最近我发现它在一个场景中出错.这可能是由于转向Silverlight 3.
错误:
消息:Silverlight 2中的未处理错误应用程序
代码:4004
类别:ManagedRuntimeError
消息:System.Security.SecurityException:对话框必须是用户启动的.
在
MyControl.OpenImportFileDialog()的System.Windows.Controls.OpenFileDialog.ShowDialog()
处......
代码:
private void BrowseFileButton_Click(object sender, RoutedEventArgs e)
{
if (string.IsNullOrEmpty(lblFileName.Text))
{
if (MessageBox.Show("Are you sure you want to change the Import file?", "Import", MessageBoxButton.OKCancel) == MessageBoxResult.Cancel)
{
return;
}
}
EnableDisableImportButtons(false);
var fileName = OpenImportFileDialog();
lblFileName.Text = fileName ?? string.Empty;
EnableDisableImportButtons(true);
}
private string OpenImportFileDialog()
{
var dlg = new OpenFileDialog { Filter = "CSV Files (*.csv)|*.csv" };
if (dlg.ShowDialog() ?? false)
{
using (var reader = dlg.File.OpenText())
{ …
Run Code Online (Sandbox Code Playgroud) 我的要求是编写一个批处理脚本来比较两个文件夹中的文件.如果SourceFolder和TargetFolder中都存在文件,则使用SourceFolder中的文件覆盖TargetFolder中的文件.
使用for-statement和if语句我可以实现这个目的:
for /R %Source% %%G in (Prefix.*.ext) do (
if exist %Target%%%~nxG (
del %%G
copy %Target%%%~nxG %Source%
)
)
Run Code Online (Sandbox Code Playgroud)
虽然附加要求是仅复制以"前缀"开头的文件.并以".ext"结尾,并排除包含"exclude"一词的所有文件.
在英语中:从该源文件夹中复制以"前缀"开头的所有文件,以".ext"结尾,不包含文本"exclude".并且已存在于目标文件夹中.
这是我被卡住的地方.有谁知道如何批量执行此操作?
0x80040237无法插入重复键.
我正在尝试通过CrmService为MSCRM4.0编写导入例程.直到这一点,这已经取得了成功.最初我只是让CRM生成记录的主键.但我的客户希望能够将我们的自定义实体的密钥设置为预定义的值.这可能使我们知道安装程序创建了哪些数据,以及安装后创建了哪些数据.
我测试过以确保在调用CrmService.Update()方法时可以设置Guids,结果表明记录是使用我们想要的值创建的.我运行了我的导入,一切似乎都成功了.在修改导入文件的验证代码时,我删除了数据(通过crm浏览器界面)并尝试重新导入.不幸的是现在它抛出并出现重复键错误.
为什么抛出这个错误?Crm接口是否删除了记录,或者它是否仍然存在但是隐藏在用户眼中?有没有办法确保永久删除已删除的记录并使Guid免费?在现场环境中,这些Guids永远不会存在,但在我的开发过程中,我需要这些导入才能成功.
顺便说一下,考虑到我有这个问题,这是否意味着静态设置Guids不是推荐的做法?
dynamics-crm ×2
batch-file ×1
c# ×1
copy ×1
debugging ×1
duplicates ×1
fetchxml ×1
import ×1
iteration ×1
primary-key ×1
silverlight ×1