跳到主要内容

数据库连接

本节介绍如何使用 SnapDevelop IDE 中的 数据库服务器资源管理器 来管理数据库连接和查询数据,例如查看数据库中的数据、新建和执行 SQL 语句、以及从数据库表创建 Model。本教程末尾的 数据库连接设置 列出了此功能支持的数据库以及相关的连接设置。

管理数据库连接

创建数据库连接

要执行数据库查询操作,首先需要建立数据库连接。

想要创建数据库连接:

  1. 选择顶部菜单栏上的 视图,然后选择 数据库服务器资源管理器

  2. 数据库服务器资源管理器 中,点击 连接到数据库 图标。

  3. 在打开的 新建连接 对话框中,从 数据提供程序 下拉列表中选择一个数据库类型,然后为该数据库类型配置数据库连接信息。

    数据库的基本连接选项以及高级连接选项会由于数据库类型而有所不同。具体请参阅 数据库连接设置

  4. 输入连接信息后,点击 测试连接 以检查连接状态。如连接成功,点击 确定 保存该数据库连接。

  5. 该数据库连接将会显示在 数据库服务器资源管理器 中。

    您现在可以在 数据库服务器资源管理器 中访问该数据库中的数据库对象,包括表、视图、存储过程、函数、以及触发器。

更改数据库连接

成功创建数据库连接后,您可以通过右键单击该数据库连接然后选择相应的菜单来刷新、删除、修改数据库连接。

  • 刷新 -- 成功创建数据库连接后,可能会对数据库进行一些修改。在这种情况下,您可以选择 刷新 来更新数据库。

  • 删除 -- 如果要删除数据库连接,可以右键单击该数据库连接,然后选择 删除

  • 修改连接 -- 如果要修改某些数据库连接属性,可以右键单击该数据库连接,然后选择 修改连接数据库连接 页面将打开。

操作数据库对象

成功创建数据库连接后,您可以在 数据库服务器资源管理器 中操作数据库中的数据库对象,包括表、视图、存储过程、函数、以及触发器。您可以右键点击对象然后通过弹出菜单来操作该对象。例如:右键点击一个表对象后,您可以使用以下右键菜单。

  • 复制名称 -- 将所选对象的名称复制到粘贴板中,例如:[dbo].[AWBuildVersion]。这样您在编写 SQL 语句时就不必手动输入名称。

  • 刷新 -- 如果只对数据库的某个对象进行了一些修改,您可以刷新该对象查看修改,而不必刷新整个数据库。当然,您也可以选择刷新所有表对象(或视图、或存储过程、或函数、或触发器),或整个数据库。

  • 新建 -- 查询数据。默认提供以下三种常用查询:全选查询前100条根据键查询。详情请参考下一小节。

  • 新建查询 -- 编写 SQL 查询语句。详情请参考下一小节。

  • 显示表数据 -- 查看表中的所有数据(列及行)。

  • 显示表数据模式 -- 查看表中的所有数据模式(Schema)。

  • SqlModelMapper -- 将打开生成 SqlModelMapper 类型 Model 的窗口。配置完毕后,点击 确定 将根据数据表生成 SqlModelMapper 类型 Model。

常用 SQL 查询

在数据库树视图中右键点击一个表或视图,然后选择 新建,可以选择以下三个常用 SQL 查询:全选查询前100条根据键查询

  • 全选 -- SQL 查询编辑器将自动生成对应的 SQL 语句。点击 SQL 查询编辑器的 执行 图标将查询并返回当前选中的表或视图中的所有数据。下面是 SQL 语句示例:

    SELECT * FROM [humanresources].[employee];

  • 查询前100条 -- SQL 查询编辑器将自动生成对应的 SQL 语句。点击 SQL 查询编辑器的 执行 图标将查询并返回当前选中的表或视图中的前 100 行数据。下面是 SQL 语句示例:

    SELECT TOP 100 * FROM [humanresources].[employee];

  • 根据键查询 -- SQL 查询编辑器将自动生成对应的 SQL 语句。点击 SQL 查询编辑器的 执行 图标将根据指定的主键值,查询并返回当前选中的表或视图中对应的数据行。下面是 SQL 语句示例:

    SELECT * FROM [humanresources].[employee] WHERE businessentityid = 1;

新建 SQL 查询

如果以上提供的常用 SQL 查询语句无法满足您的需求,您可以自己编写 SQL 查询语句。

在数据库树视图中右键点击一个表或视图,然后选择 新建查询,在 SQL 查询编辑器中输入想要查询的 SQL 语句。

或者选择 新建,然后选择一种查询,在自动生成的 SQL 语句中直接进行修改。

查看结果

点击 执行 图标将依次执行 SQL 查询编辑器中的所有 SQL 语句。

如果您只需执行其中一条 SQL 语句,请用鼠标选中该语句,然后再点击 执行 图标。

SQL 语句的执行结果将在编辑器底部显示。您可以选择以不同的格式来查看 SQL 查询执行结果、拆分结果面板、查看查询消息等。

您可以选择以网格、文本和文件三种格式来查看查询结果。

  • 以 Grid 格式查看结果

    以网格格式显示查询结果,这是默认格式。

  • 以 Text 格式查看结果

    以文本格式显示查询结果。

  • 以 File 形式查看结果

    以文件格式显示查询结果。如果选择这种方式显示查询结果,则需要将结果导出到外部文件。

分栏展示

如果 SQL 查询包含多个 SQL 语句,您可以将结果面板拆分为左右两栏以便可以水平并排显示查询结果。如下图所示,启用 将结果面板分栏展示(左右) 选项,再点击 执行 图标,查询结果将水平并排显示为左右两栏(而不是垂直排列显示)。

查看消息

执行 SQL 语句后,消息 选项卡中会显示一条消息,显示查询执行的状态。

查看数据模式

您可以在 数据模式 选项卡中查看 SQL 语句中涉及的表的关系模式集合 (schema)。

操作 MongoDB 数据库

由于 MongoDB 数据库不直接支持 SQL 语句,因此 SnapDevelop 为 MongoDB 提供了单独的增删改查功能。

MongoDB 把表 (table) 称之为集合 (collection),把行 (row) 称之为文档 (document)。集合无需单独创建,在插入记录的同时,如果存在则插入数据到该集合中,如果不存在,则新建集合。

集群登陆

除了提供基本的单点登陆功能以外,SnapDevelop 还支持 MongoDB 数据库集群登陆的功能。

SnapDevelop 支持的是集群的一种(Replica Set),有一个主节点,一个或多个从节点。主节点写入数据,从节点对主节点中的数据进行同步。使用集群可提高 MongoDB 可用性,主从某个坏了,其它节点可继续工作。通过 读偏好 选项可以指定主从节点数据读取规则。

您可以通过以下连接方式登陆MongoDB数据库集群:

  1. 字符串连接登陆。例如: mongodb://appeon:appeon@172.25.6.252:37017,172.25.6.252:37018,172.25.6.252:37019/sc_tms?replicaSet=cloud&readPreference=primary&serverSelectionTimeoutMS=5000&connectTimeoutMS=10000&authSource=admin&authMechanism=SCRAM-SHA-256

  2. 单独填写连接字段。例如:172.25.6.252:37017,172.25.6.252:37018,172.25.6.252:37019

常规查询

在常规查询中,您需要手工输入查询语句。对于过滤、映射、和排序这三种查询,您还可以到 查询构建器 中通过选择字段、条件、值等来轻松创建查询,而不必手动输入查询语句。详情请看下一小节。

输入相关的语句后,您可以点击底部的 执行 按钮执行该语句,然后在 结果 面板中查看返回的数据结果。或者点击 重置 恢复默认状态。

筛选 -- 输入结果的筛选条件语句,例如:{"Quantity" : 31},将返回 Quantity 字段值为 31 的所有数据;{Quantity : "31", Address : "粤海街道111"},将返回 Quantity 字段值为 31 同时 Address 字段值为 "粤海街道111" 的所有数据。

映射 -- 输入某(些)列的显示语句,例如:{Quantity : 1, _id : 0} 表示 Quantity 字段显示,id 字段不显示。

排序 -- 输入结果的排序语句:1 为升序,-1 为降序。例如:{Quantity: 1},将按 Quantity 字段对结果进行升序排序;{CreatedDate: -1},将按 CreatedDate 字段对结果进行降序排序;{Quantity: 1, CreatedDate: -1} 首先按 Quantity 字段对结果进行升序排序然后按 CreatedDate 字段对结果进行降序排序。

跳过 -- 输入一个整数数字,表示在返回结果集之前跳过多少条数据。

限制 -- 输入一个整数数字,表示返回的结果集中包含的最大数据。

查询构建器

您在 常规查询 的输入框中手动输入的查询语句会自动同步设置到 查询构建器 中。您也可以在 查询构建器 中通过选择字段、条件、值等来轻松创建查询(目前只提供了过滤、映射、和排序这三种查询),而不必手动输入查询语句。点击 查询构建器 将显示详细的设置选项。指定相关的条件后,您可以点击底部的 执行 按钮执行该条件,然后在 结果 面板中查看返回的数据结果。

过滤 -- 指定结果的过滤条件,如下图所示。可以点击 添加 添加多个过滤条件,或者点击条件最后的减号图标来删除此条件。过滤条件创建后,可以通过选择其前面的复选框来决定该条件是否生效。当条件创建完毕(并且其前面的复选框为选中),常规查询 中的 筛选 输入框中会自动显示对应的语句。

映射 -- 指定某(些)列的显示条件,如下图所示。可以点击 添加 添加多个条件,或者点击条件最后的减号图标来删除此条件。条件创建后,可以通过选择其前面的复选框来决定该条件是否生效。当条件创建完毕(并且其前面的复选框为选中),常规查询 中的 映射 输入框中会自动显示对应的语句。

排序 -- 指定结果的排序条件,如下图所示。可以点击 添加 添加多个条件,或者点击条件最后的减号图标来删除此条件。条件创建后,可以通过选择其前面的复选框来决定该条件是否生效。当条件创建完毕(并且其前面的复选框为选中),常规查询 中的 排序 输入框中会自动显示对应的语句。

聚合管道

MongoDB 的聚合管道由一个或多个数据处理的阶段组成。在 SnapDevelop 中您可以通过创建聚合管道来处理数据。

点击 聚合管道 展开创建区域。

阶段默认从 1 开始。您可以选择一个操作符,例如:$addFields,然后双击当前行打开 编辑阶段 的窗口。在此窗口中,您可以输入具体的表达式来定义当前阶段所要执行的操作。

增删改数据

增加数据

  1. 点击 结果 窗口中的 添加文档 图标。

  2. 在打开的 添加 JSON 文档 窗口,输入要添加的数据。点击 保存。数据将会被保存到数据库中。可以回到 结果 窗口中查看新添加的数据(如没显示,点击 刷新)。

编辑数据

  1. 首先在 结果 窗口中把鼠标光标定位到要编辑的数据记录中。

  2. 然后点击 结果 窗口中的 编辑文档 图标。

  3. 在打开的 编辑 JSON 文档 窗口中修改数据。点击 保存。数据将会被更新及保存到数据库中。可以回到 结果 窗口中查看更新后的数据(如没显示,点击 刷新)。

删除数据

  1. 首先在 结果 窗口中把鼠标光标定位到要删除的数据记录中。

  2. 然后点击 结果 窗口中的 删除文档 图标。点击 确定 删除数据。 可以回到 结果 窗口中查看删除后的数据。

查看结果

点击 执行 按钮将执行当前页面中设置的条件和语句。

执行结果将在页面底部显示。您可以选择以不同的视图来查看执行结果、插入/编辑/删除数据(见上一小节)、导出结果等。

您可以选择以 JSON 视图、树视图、表格视图等三种格式来查看查询结果。

您可以点击 导出结果 图标,将整个集合、当前搜索结果、或当前选中文档导出为 JSON 或 CSV 文件。

附录:数据库连接设置

本附录解释了每个受支持数据库所需的各种数据库连接设置。有关支持的数据库版本,请参阅 SnapDevelop 安装指南

Microsoft SQL Server

基础设置

属性描述
服务器名称您想要连接的数据库所在服务器的IP地址
验证指定验证方式
用户名数据库服务器的登录用户名
密码数据库服务器的登录密码
连接到数据库指定数据库的名称,或附加一个数据库文件,或输入一个逻辑文件名称

高级设置

属性子属性描述
AdvancedMultiple Active Result Sets当为 true 时,可以从一个连接返回和读取多个结果集。
Packet Size用于与 SQL Server 实例通信的网络数据包的大小(以字节为单位)。
Transaction Binding指示在登记时连接到 System.Transactions 事务的绑定行为。
Type System Version指示提供者将通过 DataReader 公开的服务器类型系统。
Connection ResiliencyConnect Retry Count尝试恢复连接的次数。
Connect Retry Interval用于恢复连接的在尝试之间的延迟。
ContextApplication Name应用程序名称。
Workstation ID连接到 SQL Server 的工作站的名称。
InitializationApplication Intent连接到服务器时声明的应用程序工作负载类型。
Current LanguageSQL Server 语言记录名称。
Connect Timeout如果为 true,则启用 .NET Framework 数据提供程序中的异步功能的使用。
Command Timeout在终止尝试并产生错误之前等待连接到服务器的时间长度(以秒为单位)。
PoolingEnlist组件服务(或 MRS,如果您使用 Microsoft Windows NT)环境中的会话应在需要时自动登记在全局事务中。
Load Balance Timeout此连接在被销毁之前存在于池中的最短时间(以秒为单位)。
Max Pool Size池中允许的最大连接数。
Min Pool Size池中允许的最小连接数.。
Pooling当为 true 时,会从适当的池中抽取连接对象,或者在必要时创建并添加到适当的池中。
Pool Blocking Period定义连接池的阻塞期行为。
ReplicationReplication由 SQL Server 在复制中使用。
SourceAttachDbFilename可附加数据库的主文件名,包括完整路径名。
Data Source表示要连接的数据源的名称。
Failover Partner充当故障转移伙伴的 SQL Server 实例的名称或网络地址。
Initial Catalog数据源中初始目录或数据库的名称。
Multi Subnet Failover如果您的应用程序连接到不同子网上的具有高可用性、灾难恢复 (AlwaysOn) 的可用性组 (AG),MultiSubnetFailover 为 Yes 时会配置 SqlConnection 以提供对(当前)活动服务器的更快检测和连接。
User Instance指示是否将连接重定向以连接到在用户帐户下运行的 SQL Server 实例。
SecurityAuthentication指定使用 SQL Server 进行身份认证的方法。
Column Encryption Setting连接上所有命令的默认列加密设置。
Enclave Attestation URL指定 enclave 证明服务的终结点,该终结点将用于验证在 SQL Server 实例中为计算使用 Always Encrypted 加密的数据库列而配置的 enclave 是否有效和安全。
Encrypt为 true 时,如果服务器安装了证书,则 SQL Server 对客户端和服务器之间发送的所有数据都使用 SSL 加密。
Integrated Security连接是否为安全连接。
Password表示连接数据源时使用的密码。
Persist Security Info当为 false 时,如果连接处于打开状态或曾经处于打开状态,则不会将安全敏感信息(例如密码)作为连接的一部分返回。
Trust Server Certificate当为 true(并且 encrypt=true)时,SQL Server 对客户端和服务器之间发送的所有数据使用 SSL 加密,而不验证服务器证书。
User ID表示连接数据源时使用的用户 ID。

MySQL

基础设置

常规属性描述
主机定义您的 MySQL 服务器和数据库
端口表示主机总线适配器上的端口,它提供到控制器的物理连接并用于 I/O 操作。
用户名服务器登录名。
密码服务器登录密码。
选择或输入一个默认数据库名称指定或选择一个要连接到 MySQL 数据源中的数据库的名称。
SSL 模式连接的 SSL 属性。可用选项:
Prefered:如果服务器支持则使用 SSL。
None:不使用 SSL。
Requied:始终使用 SSL。如果服务器不支持 SSL,则拒绝连接。不验证 CA 或主机名。
VerifyCA:始终使用 SSL。验证 CA 但容忍主机名不匹配。
VerifyFull:始终使用 SSL。验证 CA 和主机名。
SSL 私钥用于建立加密连接的 PEM 格式的 SSL 密钥文件的名称。
SSL CA 证书包含受信任的 TLS/SSL CA 列表的本地文件的路径。
SSL 证书用于建立加密连接的 PEM 格式的 SSL 证书文件的名称。

高级属性

PropertySub-propertyDescription
AdvancedAllow User Variables提供者是否希望用户变量出现在 SQL 中。
Allow Zero DateTime是否应该支持日期和时间为零值。
Auto Enlist连接是否应自动登记在活动连接中(如果有)。
BlobAsUTF8ExcludePattern匹配不应被视为 UTF-8 的列的模式。
BlobAsUTF8IncludePattern匹配应被视为 UTF-8 的列的模式。
Character Set此连接应使用的字符集。
Check Parameters指示是否应根据服务器检查存储的例程参数。
Command Interceptors可以拦截命令操作的拦截器列表。
Convert Zero Datetime是否应将非法日期时间值转换为 DateTime.MinValue。
Default Table Cache Age指定 TableDirect 结果应缓存多长时间(以秒为单位)。
Exception Interceptors可以分类抛出 MySqlExceptions 的拦截器列表。
Functions Return String是否应将所有服务器功能都视为返回字符串?
Ignore Prepare指示提供者忽略任何准备命令的尝试。
Include Security Asserts包括安全断言以支持中等信任。
Interactive Session是否应将本次会话视为互动式?
Old Guids将 binary(16) 列视为 Guids。
Procedure Cache Size指示一次可以缓存多少个存储过程。当值为 0 时会有效地禁用过程缓存。
Replication指示此连接是否使用 replicated servers。
Respect Binary Flags是否应该尊重列 metadata 上的二进制标志。
Sql Server Mode允许 SQL Server 语法。 Yes 值允许用 [] 而不是 `` 括起符号。这会导致性能下降,因此仅在必要时使用。
Table Cache启用或禁用 TableDirect 命令的缓存。Yes 值启用缓存,而 No 值禁用它。
Treat Blobs As UTF8二进制 Blob 是否应该被视为 UTF-8。
Treat Tiny As Boolean提供者是否应将 TINYINT(1) 列视为布尔值。
Use Affected Rows返回的受影响行数是否应反映受影响的行而不是找到的行?
Use Performance Monitor表示应在执行期间更新性能计数器。
Use Usage Advisor记录低效的数据库操作。
AuthenticationAllowPublicKeyRetrieval禁用 SSL 时允许从服务器检索 RSA 公钥。
Certificate FilePKCS#12 格式 (.pfx) 的证书文件或包含受信任 TLS/SSL CA 列表的本地文件的路径 (.pem)。
Certificate Password证书文件密码。
Certificate Store Location客户端证书的证书存储位置。
Certificate Thumbprint证书指纹。可与 Certificate Store Location 参数一起使用,以唯一标识用于 SSL 身份验证的证书。
Integrated Security连接到服务器时使用 Windows 身份验证。
SSl Ca包含受信任的 TLS/SSL CA 列表的本地文件的路径。
SSl Cert用于建立加密连接的 PEM 格式的 SSL 证书文件的名称。
SSl Key用于建立加密连接的 PEM 格式的 SSL 密钥文件的名称。
SSl Mode连接的 SSL 属性。
Backwards CompatibilityUse Default Command Timeout For EF将 EFMySqlCommand 的命令超时强制设为“DefaultCommandTimeout”属性中提供的值。
ConnectionAllow Batch允许在单个语句中执行多个 SQL 命令。
Allow Load Data Local Infile允许从文本文件中读取数据。
Allow Load Local Infile In Path允许指定文件的安全路径用于读取和上传到服务器。
Connect Timeout在终止尝试并产生错误之前等待连接到服务器的时间(以秒为单位)。
Connection Protocol用于连接到 MySQL 的协议。
Database指定最初使用的数据库。
Default Command Timeout除非更改,否则 MySqlCommand 对象将使用的默认超时。
DNS SRV连接应解析 DNS SRV 记录。
Logging启用诊断消息的输出。
Pipe Name连接命名管道时使用的管道名称(仅限 Win32)。
Port用于 TCP/IP 连接的端口。
Server指定要连接的服务器。
Shared Memory Name要使用的共享内存对象的名称。
Use Compression连接是否应该使用压缩。
OtherKeep Alive对于 TCP 连接,发送第一个 keepalive 数据包之前的空闲连接时间(以秒为单位)。值为 0 表示不使用 keepalive。
PoolingCache Server Properties当为 true 时,服务器属性将在池中的第一个服务器创建后缓存。
Connection Lifetime此连接在被销毁之前存在于池中的最短时间(以秒为单位)。
Connection Reset当为 true 时,表示从池中移除时重置连接状态。
Maximum Pool Size池中允许的最大连接数。
Minimum Pool Size池中允许的最小连接数。
Pooling当为 true 时,连接对象会从适当的池中提取,或者在必要时创建并添加到适当的池中。
SecurityPassword表示连接数据源时使用的密码。
Persist Security Info当为 false 时,如果连接是打开的或曾经处于打开状态,安全敏感信息(例如密码)不会作为连接的一部分返回。
TLS version在与服务器的 SSL 连接中使用的 TLS 版本。
User ID表示连接数据源时使用的用户 ID。
SSHSSH Host NameSSH 服务器的名称。
SSH Key File指示向 SSH 服务器进行身份验证时要使用的 SSH 密钥文件的路径和名称。
SSH Passphrase指示在向 SSH 服务器进行身份验证时要使用的与密钥文件关联的 passphrase。
SSH Password指示向 SSH 服务器进行身份验证时要使用的密码。
SSH Port用于使用 SSH 隧道建立连接的端口。
SSH User Name指示连接 SSH 服务器时使用的用户名。

Oracle

基础设置

属性描述
主机指示 Oracle 数据库所在的服务器主机。
端口指定主机总线适配器上的端口,它提供到控制器的物理连接并用于 I/O 操作。
协议选择连接协议,TCP 或 TCPS。如果您的 Oracle 数据库启用了 TLS,则会选择 TCPS,否则选择 TCP。
钱包位置指定存储钱包文件的文件夹。此设置仅在您选择 TCPS 协议时可见。
服务名称指定数据库可以通过侦听器注册自己。
用户名服务器登录名。
密码服务器登录密码。

高级设置

PropertySub-propertyDescription
DataSourceWallet Location该属性指定钱包的位置。
InitializationMetadata Pooling缓存 metadata 信息。
Statement Cache Size可缓存的最大 SQL 语句数。
MiscContext connection当为 true 时,其它连接字符串属性不可以结合使用。
TnsAdmin当前版本暂不支持该设置。
PoolingConnection Lifetime连接的最长生命周期(以秒为单位)。
Connection Timeout等待池中空闲连接的最长时间(以秒为单位)。
Increment pool size当池中的所有连接都在使用时要创建的新连接数。
Decrement pool size指定当存在空闲连接时每次删除的连接数。
Enlist是否加入环境 TransactionScope。
Max Pool Size池中允许的最大连接数。
Min Pool Size池中允许的最小连接数。
Pooling如果所有连接的计数超过 MinPoolSize,指定关闭池中未使用的连接之前等待的时间。
Statement Cache Purge当连接回到池中时清除语句缓存。
Validation Connection验证来自池的连接。
RACHA Events当 Oracle RAC 服务、服务成员或节点出现故障时,主动从池中删除连接。
Load Balancing根据负载平衡建议和服务目标平衡 Oracle RAC 实例之间的工作请求。
SecurityPassword指示连接到数据源时使用的密码。
Persist Security Info检索连接字符串中的密码。
Proxy Password代理用户 ID 指定的代理用户的密码。
Proxy User ID代理用户的用户名。
User ID指示连接到数据源时要使用的用户 ID。
SourceData Source指明要连接的数据源地址或名称。
DBA Privilege管理权限:SYSDBA 或 SYSOPER。
Promotable Transaction指示事务在其整个生命周期中是本地的还是分布式的。
Self Tuning启用或禁用连接的自调整。

PostgreSQL

基础设置

属性描述
主机指定 PostgreSQL 数据库所在的主机。
端口指定主机总线适配器上的端口,它提供到控制器的物理连接并用于 I/O 操作。
SSL 模式可用选项:
Disable:不使用 SSL。
Prefer:如果服务器支持,则使用 SSL。
Require:始终使用 SSL。
客户证书指定客户端 SSL 证书文件的路径。
用户名数据库服务器登录名。
密码数据库服务器登录密码。
输入数据库名称指示要连接到的数据库的名称。

高级设置

PropertySub-PropertyDescription
AdvancedArrayNullabilityMode配置作为对象实例请求时返回各种值类型的数组的方式。
Auto Prepare Min UsagesSQL 语句在自动准备之前使用的最少使用次数。默认为 5。
KeepaliveNpgsql 发送 keepalive 查询之前不活动连接的秒数。
Load Table Composites加载表复合类型定义,而不仅仅是独立的复合类型。
Max Auto Prepare在任何给定点可以自动准备的最大 SQL 语句数。超过这个数字,最近最少使用的语句将被回收。零(默认)禁用自动准备。
No Reset On Close如果设置为 true,则池连接的状态在关闭时不会重置(提高性能)。除非您知道自己在做什么,否则不要指定此项。
Options为连接设置 PostgreSQL 配置参数默认值。
Read Buffer Size确定 Npgsql 在读取时使用的内部缓冲区的大小。如果从数据库传输大值,增加可能会提高性能。
Socket Receive Buffer Size确定 socket 接收缓冲区的大小。
Socket Send Buffer Size确定 socket 发送缓冲区的大小。
TCP Keepalive如果未指定覆盖,是否使用具有系统默认值的 TCP keepalive。
TCP Keepalive Interval如果未收到确认,则发送连续保持活动数据包之间的时间间隔(以秒为单位)。
TCP Keepalive Time发送 TCP keepalive 查询之前连接不活动的秒数。
Use Perf Counters将连接性能信息写入性能计数器。
Write Buffer Size确定 Npgsql 在写入时使用的内部缓冲区的大小。如果将大值传输到数据库,增加可能会提高性能。
CompatibilityConvert Infinity Date Time使 MaxValue 和 MinValue 时间戳和日期可读为无穷大和负无穷大。
Server Compatibility Mode特殊 PostgreSQL 服务器类型的兼容模式。
ConnectionApplication Name在连接启动期间要发送到后端的可选应用程序名称参数。
Client Encoding获取或设置 client_encoding 参数。
Database要连接的 PostgreSQL 数据库。
Encoding获取或设置将用于编码/解码 PostgreSQL 字符串数据的 .NET 编码。
Enlist是否加入环境 TransactionScope。
Host要连接的 PostgreSQL 服务器的主机名或 IP 地址。
PassfilePostgreSQL 密码文件 (PGPASSFILE) 的路径,将从中获取密码.。
Password要连接的密码。如果使用 IntegratedSecurity,则不需要。
PortPostgreSQL 服务器的 TCP 端口。
Search Path获取或设置模式搜索路径。
Time Zone获取或设置 PostgreSQL 会话时区,采用 Olson/IANA 数据库格式。
User Name要连接的用户名。如果使用集成安全,则不需要。
Entity FrameworkEntity Admin Database在实体框架中创建和删除数据库时要指定的数据库管理员。如果未指定,则默认为“template1”。
Entity Template Database在实体框架中创建数据库时指定的数据库模板。如果未指定,PostgreSQL 默认设为“template1”。
MultiplexingMultiplexing启用多路复用,从而更有效地使用连接。
Write Coalescing Buffer Threshold Bytes启用多路复用时,确定在刷新到网络之前要缓冲的最大传出字节数。
Write Coalescing Delay Us启用多路复用后,确定在刷新到网络之前等待进一步命令的最长时间。以微秒为单位,0 完全禁用等待。
ObseleteBackend Timeouts已过时,请参阅 https://www.npgsql.org/doc/release-notes/3.1.html
Continuous Processing已过时,请参阅 https://www.npgsql.org/doc/release-notes/3.1.html
Preload Reader已过时,请参阅 https://www.npgsql.org/doc/v/3.0.html
Use Extended Types已过时,请参阅 https://www.npgsql.org/doc/release-notes/3.0.html
Use Ssl Stream已过时,请参阅 https://www.npgsql.org/doc/release-notes/4.1.html
PoolingConnection Idle Lifetime如果所有连接的计数超过 MinPoolSize,则指定在关闭池中未使用的连接之前等待的时间。
Connection Lifetime连接的总最大生命周期(以秒为单位)。
Connection Pruning Interval在尝试修剪超出空闲生命周期的空闲连接之前,池等待的秒数。
Max Pool Size最大连接池大小。
Min Pool Size最小连接池大小。
Pooling是否应该使用连接池。
SecurityCheck Certificate Revocation认证时是否检查证书吊销列表。
Client Certificate要发送到服务器的客户端证书的位置。
Client Certificate Key要发送到服务器的客户端证书的密钥。
Include Error Detail启用后,PostgreSQL 错误和通知详情被包含在 PostgresException.Detail 和 Postgres Notice.Detail 中。这些可能包含敏感数据。
Include Realm用于身份认证的 Kerberos 领域。
Integrated Security是否使用 Windows 集成安全性登录。
Kerberos Service Name用于身份验证的 Kerberos 服务名称。
Log Parameters启用后,执行命令时会记录参数值。默认为 false。
Persist Security Info获取或设置一个布尔值,该值指示安全敏感信息(例如密码)在连接打开或曾经处于打开状态时是否不作为连接的一部分返回。
Root Certificate用于验证服务器证书的 CA 证书的位置。
SSL Mode控制是否将 SSL 设置为 Required、Disabled 或 Preferred,具体取决于服务器支持。
Trust Server Certificate是否信任服务器证书而不验证它。
TimeoutsCancellation Timeout当命令超时(或用户提供的取消令牌被取消)并尝试取消命令后,Npgsql 在断开连接之前等待这个额外超时的时间(以毫秒为单位)。默认为 2000,设置为零表示无穷大。
Command Timeout在终止尝试并产生错误之前尝试执行命令时等待的时间(以秒为单位)。设置为零表示无穷大。
Internal Command Timeout在终止尝试并生成错误之前尝试执行内部命令时等待的时间(以秒为单位)。 -1 使用 CommandTimeout,0 表示没有超时。
Timeout在终止尝试并产生错误之前尝试建立连接时等待的时间(以秒为单位)。

SQLite

基础设置

属性描述
数据源指定 SQLite 数据源文件。

高级设置

PropertySub-PropertyDescription
MiscCache指定缓存模式为 Default, Private 或 Shared。
Data Source指明要连接的数据源地址或名称。
Foreign Keys启用外键约束。
Mode指定 SQLite 数据库模式为 ReadWriteCreate, ReadWrite, ReadOnly 或 Memory。
Password数据库登录密码。
Recursive Triggers启用递归触发器调用。

云数据库服务器

以下云数据库服务器连接已经过测试并被证明是成功的:

数据库云数据库服务器数据库引擎版本
MySQLAmazon Aurora for MySQL5.6.10a
MySQLAmazon RDS for MySQLMySQL 8.0.20
PostgreSQLAmazon Aurora for PostgreSQL11.6
PostgreSQLAmazon RDS for PostgreSQLPostgreSQL 12.3-R
SQL ServerAmazon RDS for SQL Server14.00.3281.6.v1(SQL Server 2017)
OracleAmazon RDS for Oracle12.1.0.1
SQL ServerMicrosoft Azure SQL最新的 SQL Server 引擎(截至 2020 年 9 月)
MySQLMicrosoft Azure database for MySQL5.6
PostgreSQLMicrosoft Azure database for PostgreSQL11

注意:连接云数据库服务器的步骤与连接本地数据库的步骤相同,只是需要将在云数据库服务器中创建的数据库实例的端点指定为服务器或主机。有关如何在云数据库服务器上创建数据库实例的信息,请参阅提供商的文档。