|
|
# 使用 扩展库 Microsoft.DotNet.Interactive.ExtensionLab
|
|
|
## 添加 Nuget 包, 成功后有用法摘要提示
|
|
|
```csharp
|
|
|
// 可以先添加包源
|
|
|
#i "nuget:https://api.nuget.org/v3/index.json"
|
|
|
|
|
|
//添加 Nuget 包
|
|
|
#r "nuget: Microsoft.DotNet.Interactive.ExtensionLab,*-*"
|
|
|
```
|
|
|
## 使用 #!linqify 创建强类型的 数据帧
|
|
|
#!linqify magic命令将 Microsoft.Data.Analysis.DataFrame 变量替换为生成的强类型数据帧,从而允许对包含的数据使用LINQ操作。
|
|
|
```csharp
|
|
|
#!linqify frame --show-code
|
|
|
|
|
|
```
|
|
|
## ExplainCode
|
|
|
这个扩展使用 Mermaid 内核从 csharp 代码生成序列图
|
|
|
## 使用 #!inspect 命令,检查代码编译详细信息!
|
|
|
#!inspect 命令,允许您查看C#单元格代码的反编译、IL和JIT Asm. 注意:深色模式下,展示区顶部的Tab[C# | IL JIT | ASM]不明显,但可以正常点击切换,或者换个VSCode主题。
|
|
|
```csharp
|
|
|
#!inspect
|
|
|
foreach(var x in Enumerable.Range(1,10))
|
|
|
{
|
|
|
Console.WriteLine(x);
|
|
|
}
|
|
|
```
|
|
|
## 使用 #!record命令来保存您运行的代码的副本
|
|
|
一旦您使用 #!recore 启用转录本记录,每个代码提交(包括重新运行的单元格)都记录在指定的文件中。所使用的JSON格式与.NET Interactive stdio和http API识别的格式相同,可用于通过自动化回放交互式会话。
|
|
|
```csharp
|
|
|
#!record --output recore.json
|
|
|
//会在笔记所在的目录生成 recore.json 文件
|
|
|
```
|
|
|
```csharp
|
|
|
Console.WriteLine("#!record");
|
|
|
```
|
|
|
## 查询 SQLite 数据库
|
|
|
此扩展添加了对使用 #!connect sqlite 命令连接到SQLite数据库的支持!有关详细信息,请使用 #!sql 魔术命令。
|
|
|
```sql
|
|
|
#!connect sqlite --kernel-name MySQLiteDemo "Data Source=SQLiteDemo.db"
|
|
|
|
|
|
/*
|
|
|
相对目录位置
|
|
|
#!connect sqlite --kernel-name MySQLiteDemo "Data Source=Database\SQLiteDemo.db;"
|
|
|
|
|
|
缓存共享
|
|
|
#!connect sqlite --kernel-name MySQLiteDemo "Data Source=Database\SQLiteDemo.db;Cache=Shared;"
|
|
|
|
|
|
使用带密码
|
|
|
#!connect sqlite --kernel-name MySQLiteDemo "Data Source=SQLiteDemo.db;Cache=Shared;Password=MyEncryptionKey;"
|
|
|
|
|
|
只读模式
|
|
|
#!connect sqlite --kernel-name MySQLiteDemo "Data Source=SQLiteDemo.db;Mode=ReadOnly"
|
|
|
|
|
|
读写创建模式
|
|
|
#!connect sqlite --kernel-name MySQLiteDemo "Data Source=SQLiteDemo.db;Mode=ReadWriteCreate"
|
|
|
|
|
|
读写模式
|
|
|
#!connect sqlite --kernel-name MySQLiteDemo "Data Source=SQLiteDemo.db;Mode=ReadWrite"
|
|
|
|
|
|
私有内存模式
|
|
|
#!connect sqlite --kernel-name MySQLiteDemo "Data Source=:memory:"
|
|
|
|
|
|
共享内存模式
|
|
|
#!connect sqlite --kernel-name MySQLiteDemo "Data Source=Sharable;Mode=Memory;Cache=Shared"
|
|
|
*/
|
|
|
```
|
|
|
```sql-MySQLiteDemo
|
|
|
#!sql-MySQLiteDemo
|
|
|
|
|
|
select * from person;
|
|
|
```
|