Guest User

Untitled

a guest
Jan 17th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.61 KB | None | 0 0
  1. public class Character
  2. {
  3. [Key]
  4. public Guid Id { get; set; }
  5. public Realm Realm { get; set; }
  6. public Guid RealmId { get; set; }
  7. public string Name { get; set; }
  8. }
  9.  
  10. public class PlayerCharacter : Character
  11. {
  12. public User User { get; set; }
  13. public Guid UserId { get; set; }
  14. }
  15.  
  16. public class Npc : Character { }
  17.  
  18. public DbSet<PlayerCharacter> Characters { get; set; }
  19. public DbSet<Npc> Npcs { get; set; }
  20.  
  21. protected override void OnModelCreating(ModelBuilder modelBuilder)
  22. {
  23. base.OnModelCreating(modelBuilder);
  24.  
  25. modelBuilder.Entity<PlayerCharacter>()
  26. .HasAlternateKey("Name", "RealmId");
  27. }
  28.  
  29. $ dotnet ef migrations add 5
  30. System.InvalidOperationException: A key cannot be configured on
  31. 'PlayerCharacter' because it is a derived type. The key must be
  32. configured on the root type 'Character'.
  33.  
  34. modelBuilder.Entity<PlayerCharacter>()
  35. .HasIndex("Name", "RealmId")
  36. .IsUnique();
  37.  
  38. $ dotnet ef migrations add 5
  39. Done. To undo this action, use 'ef migrations remove'
  40.  
  41. migrationBuilder.CreateTable(
  42. name: "Character",
  43. columns: table => new
  44. {
  45. Id = table.Column<Guid>(nullable: false),
  46. Discriminator = table.Column<string>(nullable: false),
  47. Name = table.Column<string>(nullable: true),
  48. RealmId = table.Column<Guid>(nullable: false),
  49. // other props...
  50. },
  51. constraints: table =>
  52. {
  53. table.PrimaryKey("PK_Character", x => x.Id);
  54. // foreign keys...
  55. });
  56.  
  57. migrationBuilder.CreateIndex(
  58. name: "IX_Character_Name_RealmId",
  59. table: "Character",
  60. columns: new[] { "Name", "RealmId" },
  61. unique: true);
Add Comment
Please, Sign In to add comment