参考Entity Framework Core 3.1 极简入门教程(完结)_哔哩哔哩_bilibili
视频里用的.netStander2.1 我这里测试过了用.net6也能实现
1.首先添加 两个 类库 一个 控制台应用程序 分别命名为Demo.App Demo.Data Demo.Domain
在Demo.Domain中添加 类 类名为表名
在每个类中添加属性 比如 League.cs
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text;
namespace Demo.Domain
{
public class League
{
public int Id { get; set; }
[Required]
[MaxLength(100)]
public string Name { get; set; }
[Required,MaxLength(50)]
public string Country { get; set; }
}
}
在Demo.Data中添加Nuget组件
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.Tools
Microsoft.Extensions.Logging.Console
在Demo.Data中添加Demo.Domain引用
在Demo.Data中添加 DemoContext.cs 类 代码如下
using Demo.Domain;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
namespace Demo.Data
{
public class DemoContext : DbContext
{
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder
.UseLoggerFactory(ConsoleLoggerFactory)
.UseSqlServer(
connectionString: "Data Source=DESKTOP-R4NKC51; Initial Catalog=Demo;uid=sa;pwd=123");
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<GamePlayer>().HasKey(x => new { x.PlayerId, x.GameId });
modelBuilder.Entity<Resume>()
.HasOne(x => x.Player)
.WithOne(x => x.Resume)
.HasForeignKey<Resume>(x => x.PlayerId);
}
public DbSet<League> Leagues { get; set; }
public DbSet<Club> Clubs { get; set; }
public DbSet<Player> Players { get; set; }
public static readonly ILoggerFactory ConsoleLoggerFactory =
LoggerFactory.Create(builder =>
{
builder.AddFilter((category, level) =>
category == DbLoggerCategory.Database.Command.Name
&& level == LogLevel.Information)
.AddConsole();
});
}
}