Автоматически сгенерированный Guid в CodeFirst для поля без ПК - PullRequest
0 голосов
/ 05 декабря 2018

Имеются два объекта:

public class Region
{
    public Guid Id { get; set; }

    [Key]
    public int RegionId { get; set; }

    public string Name { get; set; }

    public virtual ICollection<District> Districts { get; set; }
}

и

public class District
{
    public Guid Id { get; set; }

    [Key]
    public int DistrictId { get; set; }

    public string Name { get; set; }

    public virtual ICollection<Building> Buildings { get; set; }

    public int RegionId { get; set; }
    public Region Region { get; set; }
}

В dbContext:

        modelBuilder.Entity<Region>()
            .HasMany(d => d.Districts);
        modelBuilder.Entity<Region>()
            .HasIndex(b => b.RegionId)
            .IsUnique()
            .HasName("Index_RegionId");

        modelBuilder.Entity<District>()
            .HasIndex(d => d.DistrictId)
            .IsUnique()
            .HasName("Index_DistrictId");
        modelBuilder.Entity<District>()
            .HasOne(p => p.Region)
            .WithMany(d => d.Districts)
            .HasForeignKey(r => r.RegionId);

После запуска миграции и создания базы данных я хочу заполнить базу данных изSQL вроде:

INSERT INTO [dbo].[Regions](RegionId, Name) 
VALUES 
  (
    1, 'Some Region'
  );

В операторе CREATE TABLE можно делать следующее: ID UNIQUEIDENTIFIER DEFAULT NEWID().Как сделать автоматически сгенерированный Guid в CodeFirst ни для одного поля PK?Что я должен написать в классе DBContext, или как это можно решить?

...