Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Character
- {
- [Key]
- public Guid Id { get; set; }
- public Realm Realm { get; set; }
- public Guid RealmId { get; set; }
- public string Name { get; set; }
- }
- public class PlayerCharacter : Character
- {
- public User User { get; set; }
- public Guid UserId { get; set; }
- }
- public class Npc : Character { }
- public DbSet<PlayerCharacter> Characters { get; set; }
- public DbSet<Npc> Npcs { get; set; }
- protected override void OnModelCreating(ModelBuilder modelBuilder)
- {
- base.OnModelCreating(modelBuilder);
- modelBuilder.Entity<PlayerCharacter>()
- .HasAlternateKey("Name", "RealmId");
- }
- $ dotnet ef migrations add 5
- System.InvalidOperationException: A key cannot be configured on
- 'PlayerCharacter' because it is a derived type. The key must be
- configured on the root type 'Character'.
- modelBuilder.Entity<PlayerCharacter>()
- .HasIndex("Name", "RealmId")
- .IsUnique();
- $ dotnet ef migrations add 5
- Done. To undo this action, use 'ef migrations remove'
- migrationBuilder.CreateTable(
- name: "Character",
- columns: table => new
- {
- Id = table.Column<Guid>(nullable: false),
- Discriminator = table.Column<string>(nullable: false),
- Name = table.Column<string>(nullable: true),
- RealmId = table.Column<Guid>(nullable: false),
- // other props...
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_Character", x => x.Id);
- // foreign keys...
- });
- migrationBuilder.CreateIndex(
- name: "IX_Character_Name_RealmId",
- table: "Character",
- columns: new[] { "Name", "RealmId" },
- unique: true);
Add Comment
Please, Sign In to add comment