|
|
@ -1,71 +1,42 @@
|
|
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
using System;
|
|
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
using System.Collections.Generic;
|
|
|
|
using System.Linq;
|
|
|
|
using System.Linq;
|
|
|
|
|
|
|
|
|
|
|
|
namespace EFCoreTest
|
|
|
|
namespace EFCoreTest
|
|
|
|
{
|
|
|
|
{
|
|
|
|
public class MyDbContext : DbContext
|
|
|
|
internal class Program
|
|
|
|
{
|
|
|
|
{
|
|
|
|
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
|
|
|
private static void Main(string[] args)
|
|
|
|
{
|
|
|
|
|
|
|
|
optionsBuilder.UseSqlite("Data Source=data.db;");
|
|
|
|
|
|
|
|
//optionsBuilder.UseMySql("Server=139.180.143.95;Port=3306;Database=test;Uid=admin;Pwd=admin;");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
modelBuilder.Entity<User>();
|
|
|
|
|
|
|
|
modelBuilder.Entity<Role>();
|
|
|
|
|
|
|
|
modelBuilder.Entity<UserRole>().HasOne(o => o.User).WithMany(o => o.UserRoles).HasForeignKey(o => o.UserId);
|
|
|
|
|
|
|
|
modelBuilder.Entity<UserRole>().HasOne(o => o.Role).WithMany(o => o.UserRoles).HasForeignKey(o => o.RoleId);
|
|
|
|
|
|
|
|
modelBuilder.Entity<UserRole>().HasIndex(o => new { o.UserId, o.RoleId }).IsUnique();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public class Entity
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
public Guid Id { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public Entity()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
this.Id = Guid.NewGuid();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public class User : Entity
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
public string UserName { get; set; }
|
|
|
|
|
|
|
|
public List<UserRole> UserRoles { get; set; } = new List<UserRole>();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public class Role : Entity
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
public string Name { get; set; }
|
|
|
|
|
|
|
|
public List<UserRole> UserRoles { get; set; } = new List<UserRole>();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public class UserRole : Entity
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
public Guid UserId { get; set; }
|
|
|
|
|
|
|
|
public Guid RoleId { get; set; }
|
|
|
|
|
|
|
|
public User User { get; set; }
|
|
|
|
|
|
|
|
public Role Role { get; set; }
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Program
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
static void Main(string[] args)
|
|
|
|
|
|
|
|
{
|
|
|
|
{
|
|
|
|
using (var db = new MyDbContext())
|
|
|
|
using (var db = new MyDbContext())
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
var set = db.Set<User>();
|
|
|
|
if (db.Database.EnsureCreated())
|
|
|
|
if (db.Database.EnsureCreated())
|
|
|
|
{
|
|
|
|
{
|
|
|
|
db.Set<User>().Add(new User { UserName = "test" });
|
|
|
|
set.Add(new User
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
UserName = "test",
|
|
|
|
|
|
|
|
UserRoles = new List<UserRole>
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
new UserRole
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Role=new Role{
|
|
|
|
|
|
|
|
Name="admin"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
db.SaveChanges();
|
|
|
|
db.SaveChanges();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
Console.WriteLine(db.Set<User>().FirstOrDefault()?.UserName);
|
|
|
|
//foreach (var item in set.ToList())
|
|
|
|
|
|
|
|
//{
|
|
|
|
|
|
|
|
// set.Remove(item);
|
|
|
|
|
|
|
|
// db.SaveChanges();
|
|
|
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
var user = set.Include(o => o.UserRoles).ThenInclude(o => o.Role).FirstOrDefault();
|
|
|
|
|
|
|
|
user.UserRoles.FirstOrDefault().Role.Name = "test";
|
|
|
|
|
|
|
|
db.SaveChanges();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|