Power Apps 学习笔记 - IOrganizationService Interface
文章目录
- 1. IOrganization Interface
- 1.1 基本介绍
- 1.2 方法分析
- 2. Entity对象
- 2.1 Constructor
- 2.2 Properties
- 2.3 Methods
- 3. 相关方法
- 3.1 单行查询 Retrive
- 3.2 多行查询 RetriveMultiple
- 3.3 增加 Create
- 3.4 删除 Delete
- 3.5 修改 Update
- 4. 数据查询的不同实现方式
- 4.1 QueryExpression
- 4.2 QueryByAttribute
- 4.3 FetchExpression
- 4.4 LINQ
1. IOrganization Interface
1.1 基本介绍
- IOrganization 是用于向组织提供元数据以及数据的编程访问的接口. (Dataverse的增删改查以及表联系的相关操作)
//ServiceClient、CrmServiceClient 都可实现 IOrganizationService接口
IOrganizationService service = new CrmServiceClient(connectionString);
IOrganizationService service = new ServiceClient(connectionString);
using Microsoft.Crm.Sdk.Messages;
using Microsoft.PowerPlatform.Dataverse.Client;
using Microsoft.Xrm.Sdk;class Program
{// Dataverse环境URL以及登录信息static string url = "https://yourorg.crm.dynamics.com";static string userName = "you@yourorg.onmicrosoft.com";static string password = "yourPassword";// 连接上述代码串进行测试static string connectionString = $@"AuthType = OAuth;Url = {url};UserName = {userName};Password = {password};AppId = 51f81489-12ee-4a9e-aaae-a2591f45987d;RedirectUri = http://localhost;LoginPrompt=Auto;RequireNewInstance = True";static void Main(){// 获取IorganizationService的接口实例IOrganizationService service = new ServiceClient(connectionString);var response = (WhoAmIResponse)service.Execute(new WhoAmIRequest());Console.WriteLine($"User ID is {response.UserId}.");// Pause the console so it does not close.Console.WriteLine("Press the <Enter> key to exit.");Console.ReadLine();}
}
参考文献. c#连接Microsoft Dataver:c#连接 MicroSoft Dataverse
1.2 方法分析
参考文献. IOrganization:IOrganizationService 接口
2. Entity对象
2.1 Constructor
在这里插入代码片
2.2 Properties
在这里插入代码片
2.3 Methods
在这里插入代码片
参考文献. Entity对象:Entity对象
3. 相关方法
3.1 单行查询 Retrive
a. 代码及使用
//public Microsoft::Xrm::Sdk::Entity ^ Retrieve(System::String ^ entityName, Guid id, Microsoft::Xrm::Sdk::Query::ColumnSet ^ columnSet);
static void Retrive(IOrganizationService service){string entityName = "crda9_room"; // 逻辑名称ColumnSet columnSet = new ColumnSet("crda9_name", "crda9_type", "crda9_site"); // 查询的属性Guid guid = new Guid("4e4c81a1-439d-ee11-be37-000d3a85d073"); // 全局唯一标识符Entity entity = service.Retrieve(entityName, guid, columnSet); // 发起查询Console.WriteLine($"name:{entity.GetAttributeValue<string>("crda9_name")}"+ " " + $"type:{entity.GetAttributeValue<OptionSetValue>("crda9_type").Value}"+ " " + $"site:{entity.GetAttributeValue<string>("crda9_site")}");
}
3.2 多行查询 RetriveMultiple
a. 代码及使用
// Microsoft::Xrm::Sdk::EntityCollection ^ RetrieveMultiple(Microsoft::Xrm::Sdk::Query::QueryBase ^ query);
static void RetriveMultiple(IOrganizationService service){QueryExpression query = new("crda9_room") { }; // 表逻辑名称EntityCollection results = service.RetrieveMultiple(query); // 查询发送foreach (Entity entity in results.Entities){Console.WriteLine($"Id:{entity.Id}"); // 全局唯一标识符(每行数据有一个Id)Console.WriteLine($"name:{entity.Attributes["crda9_name"]}");}
}
b. QueryExpression 总结
public ref class QueryExpression sealed : Microsoft::Xrm::Sdk::Query::QueryBase
query.EntityName = "crda9_room"; // 1.EntityName --> 表逻辑名(可在构造函数时直接构造)
query.ColumnSet.AddColumns("crda9_name"); // 2.ColumnSet --> 负责查询列数
query.Criteria.AddCondition("crda9_type", ConditionOperator.Equal, 0); // 3.Criteria --> 查询限定条件
query.AddOrder("crda9_name", OrderType.Ascending); // 4. AddOrder --> 列排序
query.TopCount = 2; // 5. TopCount --> 控制显示的行数(与PageInfo不能同时使用)
query.PageInfo = new PagingInfo() { // 6. PageInfor --> 控制分页PageNumber = 1, // 页数Count = 2 // 每页数量
};
3.3 增加 Create
a. 代码及使用
// Guid Create(Microsoft::Xrm::Sdk::Entity ^ entity);
static void CreateExpressionExample(IOrganizationService service)
{Entity entity = new Entity("crda9_student");entity["crda9_name"] = "新学生_张雪雪";entity["crda9_age"] = 17;Guid id = service.Create(entity); Console.WriteLine("新学生的唯一id为:" + id);
}
3.4 删除 Delete
a. 代码及使用
// void Delete(System::String ^ entityName, Guid id);
static void DeleteExpressionExample(IOrganizationService service)
{string entityName = "crda9_student"; // 逻辑名称Guid guid = new Guid("e334ba87-4c9a-ee11-be37-000d3a85d073"); // 全局唯一标识符service.Delete(entityName, guid);
}
3.5 修改 Update
a. 代码及使用
// void Update(Microsoft::Xrm::Sdk::Entity ^ entity);static void UpdateExpressionExample(IOrganizationService service){Guid id = CreateExpressionExample(service); // 先调用函数创建一个新学生,返回其Id唯一标识Entity entity = new Entity("crda9_student");entity.Id = id;entity["crda9_name"] = "更新后的学生";service.Update(entity);Console.WriteLine("successful update....");}
’
4. 数据查询的不同实现方式
QueryBase的实现类
参考文献. QueryBase抽象类接口:QueryBase抽象类接口
4.1 QueryExpression
QueryExpression类 – 属性
- QueryExpression 是较为常用的数据查询类,支持列查询、条件判断、实体联系、排序等操作,
- 示例代码见相关方法当中多行查询
4.2 QueryByAttribute
QueryByAttribute类 – 属性
- 感觉功能可以由QueryByExpression代替,感觉这个可能更加侧重通过属性来查找判断,
static void QueryByAttributeTest(IOrganizationService service){QueryByAttribute query = new QueryByAttribute("crda9_room") {ColumnSet = new ColumnSet("crda9_name", "crda9_site"),};query.AddAttributeValue("crda9_site", "武汉"); // 此行必须实现(查找满足条件的数据)EntityCollection results = service.RetrieveMultiple(query);foreach (Entity entity in results.Entities){Console.WriteLine($"name:{entity.Attributes["crda9_name"]}");Console.WriteLine($"site:{entity.Attributes["crda9_site"]}");}}
4.3 FetchExpression
FetchExpression类
- 通过使用Fetch Xml语句拼接完成属性的查询以及过滤判断等相关操作.
- Dynamic 365 -> 高级查找 -> Fetch XML 使用
- 补充字符串使用
a. @ 防止转义字符串, 可以省略使用/转义的操作, 单引号需要使用双引号转义. 可多行换行, 会将每行前面空格算入内
b. $ 插值字符串, 可使用{}插入数据值, 方法类似与代替string.format(“{0}”, 数据值). 不可多行换行
c. “”“”“” 多行字符串. 可多行换行,其每行最前列以第二个"""的那一列作为标准.
static void QueryByFetch(IOrganizationService service){string fetchXml = $@"<fetch version=""1.0"" output-format=""xml-platform"" mapping=""logical"" distinct=""false""><entity name=""crda9_room""><attribute name=""crda9_name"" /><attribute name=""crda9_type"" /><attribute name=""crda9_site"" /><attribute name=""crda9_detail"" /><filter type=""and""><condition attribute=""crda9_name"" operator=""like"" value=""%北京%"" /></filter></entity></fetch>";FetchExpression query = new FetchExpression(fetchXml);EntityCollection results = service.RetrieveMultiple(query);foreach (Entity entity in results.Entities){Console.WriteLine($"name:{entity.Attributes["crda9_name"]}");Console.WriteLine($"site:{entity.Attributes["crda9_site"]}");}
}
foreach (Entity entity in results.Entities){Console.WriteLine($""" name: {entity["crda9_name"]}type: {entity.GetAttributeValue<OptionSetValue>("crda9_type")?.Value} // 防止为Nullsite: {entity.GetAttributeValue<OptionSetValue>("crda9_site")?.Value} // 防止为Null""");
}
4.4 LINQ
- LINQ 最明显的“语言集成”部分就是查询表达式。 查询表达式采用声明性查询语法编写而成。 使用查询语法,可以用最少的代码对数据源执行筛选、排序和分组操作。
相关文章:

Power Apps 学习笔记 - IOrganizationService Interface
文章目录 1. IOrganization Interface1.1 基本介绍1.2 方法分析 2. Entity对象2.1 Constructor2.2 Properties2.3 Methods 3. 相关方法3.1 单行查询 Retrive3.2 多行查询 RetriveMultiple3.3 增加 Create3.4 删除 Delete3.5 修改 Update 4. 数据查询的不同实现方式4.1 QueryExp…...
常见函数的4种类型(js的问题)
• 匿名函数 • 回调函数 • 递归函数 • 构造函数 1、匿名函数 定义时候没有任何变量引用的函数 匿名函数自调:函数只执行一次 (function(a, b){console.log(a b);} )(1, 2);// 等价于 function foo (a, b){console.log(a b); }foo(1, …...

DNS主从服务器、转发(缓存)服务器
一、主从服务器 1、基本含义 DNS辅助服务器是一种容错设计,考虑的是一旦DNS主服务器出现故障或因负载太重无法及时响应客户机请求,辅助服务器将挺身而出为主服务器排忧解难。辅助服务器的区域数据都是从主服务器复制而来,因此辅助服务器的数…...

第二十一章 网络编程
第二十一章 网络编程 1.网络相关概念2.IP地址3.域名与端口4.网络协议5.TCP与UDP6.InetAddress7.Socket8.TCP字节流编程19.TCP字节流编程210.TCP字节流编程311.网络上传文件112.网络上传文件213.网络上传文件314.Netstat15.TCP连接秘密16.UPD原理17.UPD网络编程118.UDP网络编程2…...

scratch新跳7游戏 2023年12月中国电子学会图形化编程 少儿编程 scratch编程等级考试四级真题和答案解析
目录 scratch新跳7游戏 一、题目要求 1、准备工作 2、功能实现 二、案例分析...
三、C#面向对象编程(接口与实现)
在C#中,接口是一种定义方法但不包含实现的方式,可以被多个类实现以支持不同的行为。通过接口,我们可以定义一组标准的成员,让类遵循特定的契约。 下面是一个关于接口和实现的简单示例: // 定义一个接口 public inter…...

【java爬虫】股票数据获取工具前后端代码
前面我们有好多文章都是在介绍股票数据获取工具,这是一个前后端分离项目 后端技术栈:springboot,sqlite,jdbcTemplate,okhttp 前端技术栈:vue,element-plus,echarts,ax…...

Scikit-Learn线性回归(四)
Scikit-Learn线性回归四:梯度下降 1、梯度下降1.1、梯度下降概述1.2、梯度下降及原理1.3、梯度下降的实现2、梯度下降法求解线性回归的最优解2.1、梯度下降法求解的原理2.2、梯度下降法求解线性回归的最优解2.3、梯度下降法求解线性回归案例(波士顿房价预测)3、Scikit-Learn…...

SCT2330C——3.8V-28V输入,3A,低EMI,超低功耗同步降压DCDC转换器
描述: SCT2330C是3A同步buck变换器,输入电压范围高达28V,完全集成了80mΩ高压侧MOSFET和42mΩ低压侧MOSFET,提供高效降压DC-DC转换。SCT2330C采用峰值电流模式控制,集成补偿网络,通过最小化片外元件数量&a…...
php生成唯一ID的5种方法介绍
php生成唯一ID的5种方法介绍 工作中使用到唯一ID的场景非常多,如临时缓存文件、临时变量、临时安全码等。 uniqid()函数基于以微妙计的当前时间,生成一个唯一的ID。由于生成唯一ID与微妙时间关联,因此生成ID的唯一性非常可靠。 生成的唯一…...

向日葵远程工具安装Mysql的安装与配置
目录 一、向日葵远程工具安装 1.1 简介 1.2 下载地址 二、Mysql 5.7 安装与配置 2.1 简介 2.2 安装 2.3 初始化mysql服务端 2.4 启动mysql服务 2.5 登录mysql 2.6 修改密码 2.7 设置外部访问 三、思维导图 一、向日葵远程工具安装 1.1 简介 向日葵远程控制是一款用…...

Unity 欧盟UMP用户隐私协议Android接入指南
Unity 欧盟UMP用户协议Android接入指南 官方文档链接开始接入mainTemplate.gradle 中引入CustomUnityPlayerActivity 导入UMP相关的包java类中新增字段初始化UMPSDK方法调用测…...
AutoLisp入门教程
AutoLisp入门教程 大家好,我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!在编程的世界里,有许多领域和语言需要我们去探索,今天我们将聚焦于 AutoLI…...

matplotlib颜色合集——各种常见简单图形(上)
一、.颜色配图表 图文颜色引用:建站教程 - FINTHON 二、折线图 jupyter notebook 简介plot() 2.1折线图参数 plt.plot(*args, scalexTrue, scaleyTrue, dataNone, **kwargs) 2.2、参数介绍 x:X轴数据,列表或数组,可选。 y&a…...

小H靶场笔记:DC-3
DC-3 January 3, 2024 4:11 PM Tags:Joomla owner:只惠摸鱼 信息收集 探测靶机ip: 192.168.199.133 nmap 扫描端口、 系统版本 漏洞 发现只有80端口开发, 且有cve-2017-8917漏洞存在是Joomla的SQL注入漏洞 Joomla版本为3.7.0…...
Web网页开发-CSS高级技巧2-笔记
1.已知宽高垂直水平居中 定位负margin法: 利用top:50%;left:50%;margin-left:子盒子宽度的一半;margin-top:子盒子高度的一半; 2.不定宽高垂直水平居中 兼容性最好的方案: 用定位margin:auto,定位 四个方向的值相等margin:auto…...

C++面向对象语法总结(二)
目录 《C基础语法总结》《C面向对象语法总结(一)》 十一、继承 继承,可以让子类拥有父类的多有成员(变量、函数)如下面的代码:Student是子类(subclass,派生类),Person是父类&…...

【LeetCode每日一题】2487. 从链表中移除节点(调用栈+递归+翻转链表)
2024-1-3 文章目录 [2487. 从链表中移除节点](https://leetcode.cn/problems/remove-nodes-from-linked-list/)方法一:调用栈方法二:递归方法三:翻转链表 2487. 从链表中移除节点 方法一:调用栈 1.将所有节点按顺序压入栈中 2.从…...
开源协助平台工程灵活应对多云时代的挑战
平台工程通过标准化控制和灵活性保障了开发实践。但是,随着平台工程的兴起,开源战略又该如何融入其中呢? 虽然平台工程没有一刀切的方法,但越来越明显的是,开源软件和技术对平台工程的成功绝对至关重要——这一点我将在…...

Springboot通过profiles切换不同环境使用的配置
文章目录 简介1.通过分隔符隔离2.通过使用不同的配置文件区分3.测试 简介 一个项目从开发到上线一般要经过几个环境, dev测试环境-uat预生产环境-prod生产环境,每个环境的使用的数据库或者配置不同,这时候可以通过下面两种方式区分配置,达到快速切换的效…...

51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...

用docker来安装部署freeswitch记录
今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

uniapp手机号一键登录保姆级教程(包含前端和后端)
目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号(第三种)后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...

并发编程 - go版
1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...

水泥厂自动化升级利器:Devicenet转Modbus rtu协议转换网关
在水泥厂的生产流程中,工业自动化网关起着至关重要的作用,尤其是JH-DVN-RTU疆鸿智能Devicenet转Modbus rtu协议转换网关,为水泥厂实现高效生产与精准控制提供了有力支持。 水泥厂设备众多,其中不少设备采用Devicenet协议。Devicen…...
LLaMA-Factory 微调 Qwen2-VL 进行人脸情感识别(二)
在上一篇文章中,我们详细介绍了如何使用LLaMA-Factory框架对Qwen2-VL大模型进行微调,以实现人脸情感识别的功能。本篇文章将聚焦于微调完成后,如何调用这个模型进行人脸情感识别的具体代码实现,包括详细的步骤和注释。 模型调用步骤 环境准备:确保安装了必要的Python库。…...