当前位置: 首页 > news >正文

C# EF 使用

WPF EF MySQL

- - -版本
.NET Framework4.7.2
EntityFramework6.5.1
MySql.Data.EntityFramework9.1.0
  • 创建数据库 cc
  • App.config
<connectionStrings><add name="MyDbContext" providerName="MySql.Data.MySqlClient" connectionString="server=127.0.0.1;port=3306;database=cc;user=root;password=123456;persistsecurityinfo = True;Character Set=utf8;" />
</connectionStrings>
<system.data><DbProviderFactories><remove invariant="MySql.Data.MySqlClient"/><add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=9.1.0.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/></DbProviderFactories>
</system.data>
  • 测试
public partial class MainWindow : Window
{public MainWindow(){InitializeComponent();try{using (var context = new MyDbContext()){ // 查询var entities = context.MyEntities.Where(e => e.Name == "example").ToList();// 添加var newEntity = new MyEntity { Name = "new example" };context.MyEntities.Add(newEntity);context.SaveChanges();// 更新//var existingEntity = context.MyEntities.Find(newEntity.Id);//existingEntity.Name = "updated example";//context.SaveChanges();// 删除// context.MyEntities.Remove(existingEntity);//context.SaveChanges();}}catch (Exception ex){var d = "";}}
}[DbConfigurationType(typeof(MySql.Data.EntityFramework.MySqlEFConfiguration))]
public class MyDbContext : DbContext
{public MyDbContext() : base("name=MyDbContext"){ } public DbSet<MyEntity> MyEntities { get; set; }
}[Table("my_table")]
public class MyEntity
{[Key][DatabaseGenerated(DatabaseGeneratedOption.Identity)]public int Id { get; set; }[Required][StringLength(100)]public string Name { get; set; }
}
  • 打开 NuGet 包管理器控制台
Enable-Migrations -Force # 会在跟目录生成 Migrations\Configuration.cs
AutomaticMigrationsEnabled = true;  # Configuration.cs 中修改
update-database -Force	# 迁移
Enable-Migrations [-ContextTypeName <String>] [-EnableAutomaticMigrations] [-ProjectName <String>] [-StartUpProjectName <String>] [-ConnectionStringName <String>] [-Force] [<CommonParameters>]
ContextTypeName:项目继承自DBContext的类名字。
EnableAutomaticMigrations:开启自动迁移。
ProjectName:存放DBContext类的项目名称。
StartUpProjectName:解决方案中启动项目的名称,作用是调用该项目下的连接字符串。
ConnectionStringName:连接字符串名称Enable-Migrations -ContextTypeName "WpfApp2.MyDbContext" -ProjectName "WpfApp2" -StartUpProjectName "WpfApp2" -ConnectionStringName "MyDbContext" -Verbose -Force
update-database  -ProjectName "WpfApp2" -StartUpProjectName "WpfApp2" -ConnectionStringName "MyDbContext"  -Verbose -Force

WPF EF SQLServer

- - -版本
.NET Framework4.7.2
EntityFramework6.5.1
  • 创建数据库 cc
  • App.config
<connectionStrings><add name="MyDbContext" providerName="System.Data.SqlClient" connectionString="data source=LAPTOP-EGHJ2RO7;initial catalog=t1;user id=sa;password=1234567;connection timeout=5" />
</connectionStrings>
  • 测试
public partial class MainWindow : Window
{public MainWindow(){InitializeComponent();try{using (var context = new MyDbContext()){ // 查询var entities = context.MyEntities.Where(e => e.Name == "example").ToList();// 添加var newEntity = new MyEntity { Name = "new example" };context.MyEntities.Add(newEntity);context.SaveChanges();// 更新//var existingEntity = context.MyEntities.Find(newEntity.Id);//existingEntity.Name = "updated example";//context.SaveChanges();// 删除// context.MyEntities.Remove(existingEntity);//context.SaveChanges();}}catch (Exception ex){var d = "";}}
}public class MyDbContext : DbContext
{public MyDbContext() : base("name=MyDbContext"){ } public DbSet<MyEntity> MyEntities { get; set; }
}[Table("my_table")]
public class MyEntity
{[Key][DatabaseGenerated(DatabaseGeneratedOption.Identity)]public int Id { get; set; }[Required][StringLength(100)]public string Name { get; set; }
}
  • 打开 NuGet 包管理器控制台
Enable-Migrations -Force # 会在跟目录生成 Migrations\Configuration.cs
AutomaticMigrationsEnabled = true;  # Configuration.cs 中修改
update-database -Force	# 迁移
Enable-Migrations [-ContextTypeName <String>] [-EnableAutomaticMigrations] [-ProjectName <String>] [-StartUpProjectName <String>] [-ConnectionStringName <String>] [-Force] [<CommonParameters>]
ContextTypeName:项目继承自DBContext的类名字。
EnableAutomaticMigrations:开启自动迁移。
ProjectName:存放DBContext类的项目名称。
StartUpProjectName:解决方案中启动项目的名称,作用是调用该项目下的连接字符串。
ConnectionStringName:连接字符串名称Enable-Migrations -ContextTypeName "WpfApp2.MyDbContext" -ProjectName "WpfApp2" -StartUpProjectName "WpfApp2" -ConnectionStringName "MyDbContext" -Verbose -Force
update-database  -ProjectName "WpfApp2" -StartUpProjectName "WpfApp2" -ConnectionStringName "MyDbContext"  -Verbose -Force

http://www.mrgr.cn/news/65390.html

相关文章:

  • 存储数据库的传输效率提升-ETLCloud结合HBASE
  • python项目实战 小说下载源码
  • Apache 配置出错常见问题及解决方法
  • vitis2024.1创建Linux应用
  • 开发之翼:划时代的原生鸿蒙应用市场开发者服务
  • 二百七十四、Kettle——ClickHouse中对错误数据表中进行数据修复(实时)
  • C++笔记-解决gdb调试时不显示出错行的问题
  • 13.字符串
  • AI智能体工具:AutoGLM、MobileAgent、Claude compute use
  • Java面向对象编程高级-枚举类(四)
  • 基于SSM的学生选课系统+LW参考示例
  • CSRF初级靶场
  • 三、 问题发现(日志分析)
  • qt QTimer详解
  • SpringBoot框架:新闻稿件管理技术革新
  • 【Linux驱动开发】通过设备树节点来配置和调用GPIO(pinctrl节点和gpio-controller)
  • Android 15 在状态栏时间中显示秒数
  • NVR批量管理软件/平台EasyNVR多品牌NVR管理工具/设备的广泛应用
  • 现在性能测试岗位主要有什么要求啊?
  • spring生命周期
  • 机场网约车智能出行可以选择不同车型吗?
  • 使用onnxruntime c++ API实现yolov5m视频检测
  • 在日本工作的企业文化与国内有什么不同?
  • 【美国非农数据与美联储降息之间的关系】
  • 电机用电工钢:取向硅钢片与无取向硅钢片的区别
  • 关于我、重生到500年前凭借C语言改变世界科技vlog.14——常见C语言算法