IT评测·应用市场-qidao123.com技术社区

标题: C#使用Entity Framework Core处理数据库(一) [打印本页]

作者: 曂沅仴駦    时间: 2024-6-15 00:17
标题: C#使用Entity Framework Core处理数据库(一)
1.理解Entity Framework Core

Entity Framework Core(EF Core)是一个轻量级、跨平台的对象关系映射(ORM)框架,用于在.NET应用程序中处理数据库操作。它提供了一种将数据库中的数据映射到.NET对象模型的方法,使开辟人员可以使用面向对象的方式举行数据库操作,而无需直接编写SQL语句。
EF Core支持多种数据库引擎,并具有良好的可扩展性和性能优化功能。它可以通过Code First(从代码开始)、Database First(从数据库开始)或Model First(从模型开始)等差别的开辟方式来创建和管理数据库模式,以及执行查询、插入、更新和删除等操作。
与旧版的Entity Framework相比,Entity Framework Core具有以下一些明显的特点和改进:
2.设置EF Core

要使用Entity Framework Core,起首必要在.NET Core项目中安装Entity Framework Core相干的NuGet包。你可以打开Visual Studio的NuGet包管理器,并搜索"Microsoft.EntityFrameworkCore"来安装EF Core的核心包。此外,你可能还必要安装与所选择的数据库引擎相干的数据库提供程序,比如"Microsoft.EntityFrameworkCore.SqlServer"用于毗连SQL Server。
3.定义EF Core模型

EF Core约定
  1. public class Product
  2. {
  3.     [Key]
  4.     public int Id { get; set; }
  5.     // other properties
  6. }
复制代码
[Required]:指示属性不允许为空(对应数据库中的NOT NULL束缚)。
  1. public class Product
  2. {
  3.     [Key]
  4.     public int Id { get; set; }  
  5.     [Required]
  6.     public string Name { get; set; }
  7.     // other properties
  8. }
复制代码
[MaxLength]:指定字符串属性的最大长度。
  1. public class Product
  2. {
  3.     [Key]
  4.     public int Id { get; set; }  
  5.     [Required]
  6.     [MaxLength(100)]
  7.     public string Name { get; set; }
  8.     // other properties
  9. }
复制代码
[ForeignKey]:定义外键属性。
  1. public class Order
  2. {
  3.     [Key]
  4.     public int Id { get; set; }  
  5.     [ForeignKey("CustomerId")]
  6.     public int CustomerId { get; set; }
  7.     // other properties
  8. }
复制代码
EF Core Fluent API
Entity Framework Core的Fluent API提供了一种以流畅的方式设置实体类和数据库模型的方法。通过使用Fluent API,你可以对实体类之间的关系、主键、外键以及其他映射细节举行更加机动和详细的设置。
  1. protected override void OnModelCreating(ModelBuilder modelBuilder)
  2. {
  3.     modelBuilder.Entity<Product>()
  4.         .HasKey(p => p.Id);
  5. }
复制代码
  1. protected override void OnModelCreating(ModelBuilder modelBuilder)
  2. {
  3.     modelBuilder.Entity<Product>()
  4.         .Property(p => p.Name)
  5.         .IsRequired();
  6. }
复制代码
  1. protected override void OnModelCreating(ModelBuilder modelBuilder)
  2. {
  3.     modelBuilder.Entity<Product>()
  4.         .ToTable("MyProducts");
  5. }
复制代码
  1. protected override void OnModelCreating(ModelBuilder modelBuilder)
  2. {
  3.     modelBuilder.Entity<Order>()
  4.         .HasOne(o => o.Customer)
  5.         .WithMany(c => c.Orders)
  6.         .HasForeignKey(o => o.CustomerId);
  7. }
复制代码
  1. protected override void OnModelCreating(ModelBuilder modelBuilder)
  2. {
  3.     modelBuilder.Entity<Customer>()
  4.         .OwnsOne(c => c.HomeAddress);
  5. }
复制代码
构建EF Core模型
  1. public class Product
  2. {
  3.     public int Id { get; set; }
  4.     public string Name { get; set; }
  5.     public decimal Price { get; set; }
  6. }
复制代码
csharp
  1. public class AppDbContext : DbContext
  2. {
  3.     public DbSet<Product> Products { get; set; }
  4.     protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
  5.     {
  6.         optionsBuilder.UseSqlServer("your_connection_string");
  7.     }
  8. }
复制代码
  1. protected override void OnModelCreating(ModelBuilder modelBuilder)
  2. {
  3.     modelBuilder.Entity<Product>()
  4.         .HasKey(p => p.Id);
  5.     // 其他配置...
  6. }
复制代码
通过以上步骤,你可以成功构建和设置Entity Framework Core模型,并与数据库举行交互。
感谢您阅读本文中关于Entity Framework Core的示例代码和说明。希望这些示例可以或许资助您更好地理解怎样在C#中构建EF Core模型。如果您有任何其他题目或必要进一步的引导,请随时告诉我。祝您编程愉快!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) Powered by Discuz! X3.4