c# 简单实践 ef mode方式

这篇博客展示了如何使用Entity Framework与MySql.Data.EntityFramework库进行简单的数据库操作。通过创建一个模型类Tb1,定义数据库上下文DBContentMy,并配置连接字符串,实现了数据的插入和查询。在配置文件中指定了MySql数据库的连接信息,并在代码中通过SaveChanges()方法保存了数据。运行结果成功显示了插入的数据。

1.概要

EF 简单实验,使用mode

2.代码

using MySql.Data.EntityFramework;
using System;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity;
using System.Linq;

namespace EF简单实验_模型
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("EF简单实践");
            using (DBContentMy db = new DBContentMy())
            {
                Tb1 tb1 = new Tb1();
                tb1.v1 = 1;
                db.Tb1s.Add(tb1);
                db.SaveChanges();
            }
            
            using (DBContentMy db = new DBContentMy())
            {
                foreach (Tb1 tb1 in db.Tb1s.ToList()) {
                    Console.WriteLine(tb1.id+" "+tb1.v1);
                }
            }
            Console.ReadKey();
        }
    }
    [Table("Tb1")]
    class Tb1
    {
        public int id { set; get; }
        public int v1 { set; get; }
    }
    [DbConfigurationType(typeof(MySqlEFConfiguration))]
    class DBContentMy : DbContext
    {
        public DBContentMy() : base("DbConnStr")
        {
            Database.SetInitializer<DBContentMy>(null);
        }
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);
        }


        public DbSet<Tb1> Tb1s { set; get; }
    }
}

2.2 配文件

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.1" />
  </startup>
	<connectionStrings>
		<add name="DbConnStr" connectionString="Data Source=localhost;port=3306;Initial Catalog=db;user id=root;password=123456;" providerName="MySql.Data.MySqlClient" />
	</connectionStrings>
  <entityFramework>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.EntityFramework, Version=8.0.26.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d">
      </provider></providers>
  </entityFramework>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

3.运行结果

 4.其他

4.1 创建数据库脚本

CREATE TABLE `tb1` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `v1` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
)

4.2 nuget配置(选择这一个,其他的关联插件会自动下载)

 

要在C#项目中使用 PostgreSQL 数据库,你需要安装一个 .NET 的 PostgreSQL 客户端驱动程序。最常用、官方推荐且功能完善的库是 **Npgsql**,它是一个开源的 ADO.NET 数据提供者,专为 PostgreSQL 设计。 --- ### ✅ 步骤一:安装 Npgsql 包 你可以通过 NuGet 包管理器安装 `Npgsql`。以下是几种安装方式: #### 方法 1:使用 NuGet 包管理器命令(推荐) 在 Visual Studio 的“包管理器控制台”中运行: ```powershell Install-Package Npgsql ``` #### 方法 2:使用 .NET CLI 在项目目录下执行: ```bash dotnet add package Npgsql ``` #### 方法 3:手动编辑 `.csproj` 文件 添加以下内容到你的 `.csproj` 文件中: ```xml <ItemGroup> <PackageReference Include="Npgsql" Version="8.0.0" /> </ItemGroup> ``` > 建议查看 [NuGet Gallery - Npgsql](https://www.nuget.org/packages/Npgsql) 获取最新版本号。 --- ### ✅ 步骤二:连接并操作 PostgreSQL 数据库(示例代码) 以下是一个简单C# 控制台应用程序示例,展示如何连接 PostgreSQL 并查询数据。 ```csharp using System; using System.Threading.Tasks; using Npgsql; class Program { static async Task Main(string[] args) { // 替换为你的 PostgreSQL 连接字符串 string connectionString = "Host=localhost;Database=mydb;Username=postgres;Password=yourpassword;Port=5432"; try { await using var conn = new NpgsqlConnection(connectionString); await conn.OpenAsync(); Console.WriteLine("✅ 成功连接到 PostgreSQL 数据库!"); // 执行一个简单查询 await using var cmd = new NpgsqlCommand("SELECT version()", conn); var result = await cmd.ExecuteScalarAsync(); Console.WriteLine($"PostgreSQL 版本: {result}"); } catch (Exception ex) { Console.WriteLine($"❌ 连接失败: {ex.Message}"); } } } ``` --- ### 🔍 解释说明: - **Npgsql** 是用于 .NET 平台访问 PostgreSQL 的核心驱动。 - `NpgsqlConnection` 表示数据库连接。 - `NpgsqlCommand` 用于执行 SQL 命令。 - 支持同步和异步操作(推荐使用 `async/await` 提高性能)。 - 连接字符串格式: ``` Host=服务器地址;Database=数据库名;Username=用户名;Password=密码;Port=端口号 ``` 常见配置项: - `Host=localhost` 或 IP 地址 - `Port=5432`(默认) - `Username=postgres`(或其他用户) - `Password=...` - 可选:`SSL Mode=Require`(生产环境建议启用 SSL) --- ### 🛠️ 额外建议(可选) 1. **Entity Framework Core + PostgreSQL** 如果你希望使用 ORM,可以结合 **EF Core** 和 **Npgsql.EntityFrameworkCore.PostgreSQL**: ```bash dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL ``` 然后在 `DbContext` 中使用: ```csharp options.UseNpgsql("YourConnectionString"); ``` 2. **连接池** Npgsql 默认启用连接池,提高性能。可通过连接字符串控制: ``` Max Pool Size=100;Min Pool Size=5; ``` 3. **SSL 配置(云数据库如 AWS RDS、Azure)** ```text Ssl Mode=Require;Trust Server Certificate=true; ``` --- ### ❓常见问题排查 | 问题 | 原因 | 解决方法 | |------|------|---------| | 连接被拒绝 | PostgreSQL 未启动或端口错误 | 检查服务是否运行 (`sudo service postgresql status`) | | 用户名或密码错误 | 认证失败 | 确认 `pg_hba.conf` 和用户权限 | | 无法远程连接 | 绑定地址限制 | 修改 `postgresql.conf` 中 `listen_addresses = '*'` | ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值