diff --git a/EFCore7Study.BlazorServerApp/EFCore7Study.BlazorServerApp.csproj b/EFCore7Study.BlazorServerApp/EFCore7Study.BlazorServerApp.csproj
index 4c2bb77..dbd114e 100644
--- a/EFCore7Study.BlazorServerApp/EFCore7Study.BlazorServerApp.csproj
+++ b/EFCore7Study.BlazorServerApp/EFCore7Study.BlazorServerApp.csproj
@@ -6,4 +6,12 @@
enable
+
+
+
+
+
+
+
+
diff --git a/EFCore7Study.BlazorWasmApp/EFCore7Study.BlazorWasmApp.csproj b/EFCore7Study.BlazorWasmApp/EFCore7Study.BlazorWasmApp.csproj
index fed7172..89233fb 100644
--- a/EFCore7Study.BlazorWasmApp/EFCore7Study.BlazorWasmApp.csproj
+++ b/EFCore7Study.BlazorWasmApp/EFCore7Study.BlazorWasmApp.csproj
@@ -9,6 +9,7 @@
+
diff --git a/EFCore7Study.CoreConsoleApp/EFCore7Study.CoreConsoleApp.csproj b/EFCore7Study.CoreConsoleApp/EFCore7Study.CoreConsoleApp.csproj
index f02677b..2dd57ec 100644
--- a/EFCore7Study.CoreConsoleApp/EFCore7Study.CoreConsoleApp.csproj
+++ b/EFCore7Study.CoreConsoleApp/EFCore7Study.CoreConsoleApp.csproj
@@ -7,4 +7,13 @@
enable
+
+
+
+
+
+
+
+
+
diff --git a/EFCore7Study.CoreConsoleApp/Program.cs b/EFCore7Study.CoreConsoleApp/Program.cs
index 89a1036..580f256 100644
--- a/EFCore7Study.CoreConsoleApp/Program.cs
+++ b/EFCore7Study.CoreConsoleApp/Program.cs
@@ -1,10 +1,281 @@
-namespace EFCore7Study.CoreConsoleApp
+using EFCore7Study.DataService;
+
+using Spectre.Console;
+
+namespace EFCore7Study.CoreConsoleApp
{
internal class Program
{
static void Main(string[] args)
{
- Console.WriteLine("Hello, World!");
+ AnsiConsole.Status()
+ .Spinner(Spinner.Known.BouncingBar)
+ .Start("测试一个", ctx =>
+ {
+ ctx.Spinner(Spinner.Known.BouncingBar);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Aesthetic));
+
+ ctx.Spinner(Spinner.Known.Arc);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Arc));
+
+ ctx.Spinner(Spinner.Known.Arrow);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Arrow));
+
+ ctx.Spinner(Spinner.Known.Arrow2);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Arrow2));
+
+ ctx.Spinner(Spinner.Known.Arrow3);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Arrow3));
+
+ ctx.Spinner(Spinner.Known.Balloon);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Balloon));
+
+ ctx.Spinner(Spinner.Known.Balloon2);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Balloon2));
+
+ ctx.Spinner(Spinner.Known.BetaWave);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.BetaWave));
+
+ ctx.Spinner(Spinner.Known.Bounce);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Bounce));
+
+ ctx.Spinner(Spinner.Known.BouncingBall);
+ Thread.Sleep(3000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.BouncingBall));
+
+ ctx.Spinner(Spinner.Known.BouncingBar);
+ Thread.Sleep(3000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.BouncingBar));
+
+ ctx.Spinner(Spinner.Known.BoxBounce);
+ Thread.Sleep(3000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.BoxBounce));
+
+ ctx.Spinner(Spinner.Known.BoxBounce2);
+ Thread.Sleep(3000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.BoxBounce2));
+
+ ctx.Spinner(Spinner.Known.Dots8Bit);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Dots8Bit));
+
+ ctx.Spinner(Spinner.Known.Christmas);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Christmas));
+
+ ctx.Spinner(Spinner.Known.Circle);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Circle));
+
+ ctx.Spinner(Spinner.Known.CircleHalves);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.CircleHalves));
+
+ ctx.Spinner(Spinner.Known.CircleQuarters);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.CircleQuarters));
+
+ ctx.Spinner(Spinner.Known.Clock);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Clock));
+
+ ctx.Spinner(Spinner.Known.Default);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Default));
+
+ ctx.Spinner(Spinner.Known.Dots);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Dots));
+
+ ctx.Spinner(Spinner.Known.Dots2);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Dots2));
+
+ ctx.Spinner(Spinner.Known.Dots8Bit);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Dots8Bit));
+ //========================================================
+ ctx.Spinner(Spinner.Known.Dqpb);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Dqpb));
+
+ ctx.Spinner(Spinner.Known.Earth);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Earth));
+
+ ctx.Spinner(Spinner.Known.Flip);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Flip));
+
+ ctx.Spinner(Spinner.Known.Grenade);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Grenade));
+
+ ctx.Spinner(Spinner.Known.GrowHorizontal);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.GrowHorizontal));
+
+ ctx.Spinner(Spinner.Known.GrowVertical);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.GrowVertical));
+
+ ctx.Spinner(Spinner.Known.Hamburger);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Hamburger));
+ Thread.Sleep(2000);
+
+ ctx.Spinner(Spinner.Known.Hearts);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Hearts));
+
+ ctx.Spinner(Spinner.Known.Layer);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Layer));
+
+ ctx.Spinner(Spinner.Known.Line);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Line));
+
+ ctx.Spinner(Spinner.Known.Line2);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Line2));
+
+ ctx.Spinner(Spinner.Known.Material);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Material));
+
+ ctx.Spinner(Spinner.Known.Monkey);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Monkey));
+
+ ctx.Spinner(Spinner.Known.Moon);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Moon));
+
+ ctx.Spinner(Spinner.Known.Noise);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Noise));
+
+ ctx.Spinner(Spinner.Known.Pipe);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Pipe));
+
+ ctx.Spinner(Spinner.Known.Point);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Dots8Bit));
+
+ ctx.Spinner(Spinner.Known.Pong);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Pong));
+
+ ctx.Spinner(Spinner.Known.Runner);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Runner));
+
+ ctx.Spinner(Spinner.Known.Shark);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Shark));
+
+ ctx.Spinner(Spinner.Known.SimpleDots);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.SimpleDots));
+
+ ctx.Spinner(Spinner.Known.SimpleDotsScrolling);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.SimpleDotsScrolling));
+
+ ctx.Spinner(Spinner.Known.Smiley);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Smiley));
+
+ ctx.Spinner(Spinner.Known.SquareCorners);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.SquareCorners));
+
+ ctx.Spinner(Spinner.Known.Squish);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Squish));
+
+ ctx.Spinner(Spinner.Known.Star);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Star));
+
+ ctx.Spinner(Spinner.Known.Star2);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Star2));
+
+ ctx.Spinner(Spinner.Known.Toggle);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Toggle));
+
+ ctx.Spinner(Spinner.Known.Toggle2);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Toggle2));
+
+ ctx.Spinner(Spinner.Known.Triangle);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Triangle));
+
+ ctx.Spinner(Spinner.Known.Weather);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Weather));
+
+ ctx.Spinner(Spinner.Known.Weather);
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine(nameof(Spinner.Known.Weather));
+ });
+
+
+ AnsiConsole.Status()
+ .Spinner(Spinner.Known.Balloon)
+ .Start("准备查询数据库...", ctx =>
+ {
+ Thread.Sleep(2000);
+
+ // 生成查询对象
+ ctx.Status("生成查询对象...");
+ AppDbContext dbContext = new AppDbContext();
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine("生成查询对象: DbContext, 完成!");
+
+ // 连接数据库
+ ctx.Status("正在连接到数据库服务器...");
+ ctx.Spinner(Spinner.Known.Balloon);
+ ctx.SpinnerStyle(Style.Parse("green"));
+ Thread.Sleep(2000);
+ AnsiConsole.MarkupLine("已连接到数据库服务器!");
+
+
+ // 查询数据
+ ctx.Status("正在查询数据...");
+ ctx.Spinner(Spinner.Known.Star2);
+ ctx.SpinnerStyle(Style.Parse("yellow"));
+ Thread.Sleep(3000);
+ AnsiConsole.MarkupLine("完成查询!");
+
+
+ //输出查询结果
+ ctx.Status("输出查询结果...");
+ ctx.Spinner(Spinner.Known.Arrow);
+ ctx.SpinnerStyle(Style.Parse("red"));
+
+ dbContext.Accounts.ToList().ForEach(x =>
+ {
+ AnsiConsole.MarkupLine($"标识:{x.Id},编号:{x.Code}, 姓名:{x.Name.PadRight(10)},年龄:{x.Age}, 密码:{x.Pwd}");
+ Thread.Sleep(300);
+ });
+
+ AnsiConsole.MarkupLine("任务完成!");
+
+ });
}
}
}
\ No newline at end of file
diff --git a/EFCore7Study.DataService.Tests/EFCore7Study.DataService.Tests.csproj b/EFCore7Study.DataService.Tests/EFCore7Study.DataService.Tests.csproj
index 5e9fe29..02b456a 100644
--- a/EFCore7Study.DataService.Tests/EFCore7Study.DataService.Tests.csproj
+++ b/EFCore7Study.DataService.Tests/EFCore7Study.DataService.Tests.csproj
@@ -10,6 +10,7 @@
+
diff --git a/EFCore7Study.DataService/AppDbContext.cs b/EFCore7Study.DataService/AppDbContext.cs
new file mode 100644
index 0000000..3fb0003
--- /dev/null
+++ b/EFCore7Study.DataService/AppDbContext.cs
@@ -0,0 +1,51 @@
+using EFCore7Study.DataService.Models;
+
+using Microsoft.EntityFrameworkCore;
+
+namespace EFCore7Study.DataService
+{
+ public class AppDbContext : DbContext
+ {
+ private string? _connectString;
+
+ public AppDbContext()
+ {
+
+ }
+
+ public AppDbContext(string connectstring)
+ {
+ _connectString = connectstring;
+ }
+
+ public AppDbContext(DbContextOptions options)
+ : base(options)
+ {
+
+ }
+
+ protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
+ {
+ if (!optionsBuilder.IsConfigured)
+ {
+ if (string.IsNullOrWhiteSpace(_connectString))
+ {
+ _connectString = @"Server=127.0.0.1\SQL2019;Database=EFCore7Study;User Id=sa;Password=gly-bicijinlian;Encrypt=True;TrustServerCertificate=True;";
+ }
+
+ optionsBuilder
+ .UseSqlServer(_connectString)
+ .EnableSensitiveDataLogging();
+ }
+ }
+
+ protected override void OnModelCreating(ModelBuilder modelBuilder)
+ {
+ modelBuilder.Entity().ToTable("Account");
+
+ base.OnModelCreating(modelBuilder);
+ }
+
+ public DbSet Accounts { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/EFCore7Study.DataService/Class1.cs b/EFCore7Study.DataService/Class1.cs
deleted file mode 100644
index b4b991e..0000000
--- a/EFCore7Study.DataService/Class1.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-namespace EFCore7Study.DataService
-{
- public class Class1
- {
-
- }
-}
\ No newline at end of file
diff --git a/EFCore7Study.DataService/EFCore7Study.DataService.csproj b/EFCore7Study.DataService/EFCore7Study.DataService.csproj
index bebe973..d462168 100644
--- a/EFCore7Study.DataService/EFCore7Study.DataService.csproj
+++ b/EFCore7Study.DataService/EFCore7Study.DataService.csproj
@@ -7,6 +7,8 @@
+
+
diff --git a/EFCore7Study.DataService/Models/Account.cs b/EFCore7Study.DataService/Models/Account.cs
new file mode 100644
index 0000000..b8bc6a3
--- /dev/null
+++ b/EFCore7Study.DataService/Models/Account.cs
@@ -0,0 +1,17 @@
+namespace EFCore7Study.DataService.Models
+{
+ ///
+ /// 帐号信息
+ ///
+ public class Account
+ {
+ public int Id { get; set; }
+ public string Code { get; set; }
+ public string Name { get; set; }
+ public string Pwd { get; set; }
+
+ public int Age { get; set; }
+
+ public int State { get; set; }
+ }
+}
diff --git a/EFCore7Study.WebApi/EFCore7Study.WebApi.csproj b/EFCore7Study.WebApi/EFCore7Study.WebApi.csproj
index 499d259..d6f9db3 100644
--- a/EFCore7Study.WebApi/EFCore7Study.WebApi.csproj
+++ b/EFCore7Study.WebApi/EFCore7Study.WebApi.csproj
@@ -8,6 +8,7 @@
+
diff --git a/EFCore7Study.WebApp/EFCore7Study.WebApp.csproj b/EFCore7Study.WebApp/EFCore7Study.WebApp.csproj
index 4c2bb77..b4f160e 100644
--- a/EFCore7Study.WebApp/EFCore7Study.WebApp.csproj
+++ b/EFCore7Study.WebApp/EFCore7Study.WebApp.csproj
@@ -6,4 +6,8 @@
enable
+
+
+
+