如何快速上手Supabase-CSharp?5分钟完成数据库连接与CRUD操作
如何快速上手Supabase-CSharp5分钟完成数据库连接与CRUD操作【免费下载链接】supabase-csharpA C# Client library for Supabase项目地址: https://gitcode.com/gh_mirrors/su/supabase-csharpSupabase-CSharp是一个功能强大的C#客户端库专为与Supabase后端服务交互而设计。通过它开发者可以轻松实现数据库连接、认证管理、实时数据同步等核心功能无需编写复杂的后端代码。本文将带你快速掌握Supabase-CSharp的基础用法5分钟内完成从环境搭建到数据库CRUD操作的全流程。1️⃣ 环境准备3步完成安装与配置安装Supabase-CSharp包通过NuGet包管理器安装核心依赖Install-Package Supabase或使用.NET CLIdotnet add package Supabase获取Supabase项目凭证登录Supabase控制台在项目设置中获取项目URL形如https://your-project-id.supabase.coAPI密钥选择anon或service_role密钥开发环境建议使用anon密钥初始化客户端连接创建SupabaseClient实例建立连接using Supabase; var options new SupabaseOptions { AutoRefreshToken true, SessionHandler new DefaultSupabaseSessionHandler() }; var client new SupabaseClient( YOUR_SUPABASE_URL, YOUR_SUPABASE_ANON_KEY, options );代码示例来自packages/Supabase/Supabase/Client.cs2️⃣ 定义数据模型映射数据库表结构Supabase-CSharp采用对象关系映射(ORM)模式通过特性标记实体类与数据库表的映射关系using Supabase.Postgrest.Attributes; using Supabase.Postgrest.Models; [Table(todos)] // 对应数据库表名 public class Todo : BaseModel { [PrimaryKey(id)] // 主键字段 public int Id { get; set; } [Column(task)] // 普通字段 public string Task { get; set; } string.Empty; [Column(is_completed)] public bool IsCompleted { get; set; } }模型定义规范参考packages/Postgrest/Postgrest.Tests/Models/Todo.cs3️⃣ 核心CRUD操作简洁API实现数据交互创建数据Create插入新记录到数据库var newTodo new Todo { Task 学习Supabase-CSharp, IsCompleted false }; var response await client.TableTodo().Insert(newTodo); var createdTodo response.Model; // 获取插入后的完整对象含自动生成的ID读取数据Read查询表中所有记录或按条件筛选// 获取所有待办事项 var allTodos await client.TableTodo().Get(); var todosList allTodos.Models; // 筛选已完成的事项 var completedTodos await client.TableTodo() .Where(todo todo.IsCompleted true) .Order(todo todo.Id, Ordering.Descending) .Limit(10) .Get();查询构建器用法示例来自packages/Postgrest/Postgrest.Tests/Filtering/FilterQueryTests.cs更新数据Update修改现有记录var todoToUpdate todosList.First(); todoToUpdate.IsCompleted true; var updatedTodo await client.TableTodo().Update(todoToUpdate);删除数据Delete移除记录var todoToDelete todosList.Last(); await client.TableTodo().Delete(todoToDelete);4️⃣ 高级功能实时订阅与错误处理实时数据订阅通过Realtime功能监听表数据变化var channel client.Realtime.Channel(todos); channel.OnPostgresChangesTodo( public, todos, (change) Console.WriteLine($Todo {change.Model.Id} {change.EventType}) ); await channel.Subscribe();实时订阅实现参考packages/Realtime/Realtime.Tests/PostgresChanges/PostgresChangesDeliveryTests.cs异常处理最佳实践try { var result await client.TableTodo().Get(); } catch (PostgrestException ex) { Console.WriteLine($数据库错误: {ex.Message}); // 处理401未授权、404资源不存在等错误 }5️⃣ 项目结构与资源Supabase-CSharp采用模块化设计主要包含以下功能包Core基础工具与扩展 packages/Core/Postgrest数据库交互核心 packages/Postgrest/Realtime实时数据同步 packages/Realtime/Gotrue用户认证管理 packages/Gotrue/完整示例代码可参考项目测试目录packages/Postgrest/Postgrest.Tests/ 快速入门总结通过本文你已掌握安装并初始化Supabase-CSharp客户端定义数据模型映射数据库表使用简洁API实现CRUD操作配置实时数据订阅Supabase-CSharp让C#开发者能以最低成本接入企业级后端服务无论是快速原型开发还是生产环境部署都是理想选择。立即访问项目仓库开始使用吧git clone https://gitcode.com/gh_mirrors/su/supabase-csharp提示实际开发中建议配合Supabase控制台的SQL编辑器创建表结构然后使用代码生成工具自动创建模型类。【免费下载链接】supabase-csharpA C# Client library for Supabase项目地址: https://gitcode.com/gh_mirrors/su/supabase-csharp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考