Entity Framework Core HasOne и WithMany не существует - PullRequest
0 голосов
/ 11 апреля 2020

Почему у меня не было HasOne() и WithMany() параметров в методе modelBiulder.Entity<T>?

Ответы [ 2 ]

0 голосов
/ 11 апреля 2020

У меня есть это, но оно все еще показывает мне предупреждение

public class CarEquipment
{

    public int CarId { get; set; }
    public int EquipmentId { get; set; }

    public Car Car { get; set; }
    public Equipment Equipment { get; set; }
}

public class Equipment
{
    public int EquipmentId { get; set; }
    public IEnumerable<string> Item { get; set; }
    public List<CarEquipment> CarEquipments { get; set; }
}
public class
{
    public int CarId { get; set; }
    public string Brand { get; set; }
    public string Model { get; set; }
    public int Price { get; set; }

    public List<CarEquipment> CarEquipments { get; set; }
}

public DbSet<Car> Cars { get; set; }
    public DbSet<Equipment> Equipments { get; set; }
    public DbSet<CarEquipment> CarEquipments { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Car>().HasKey(x => x.CarId);
        modelBuilder.Entity<CarEquipment>().HasKey(x => new { x.CarId, x.EquipmentId });
        modelBuilder.Entity<Equipment>().HasKey(x => x.EquipmentId);
        modelBuilder.Entity<CarEquipment>().HasOne(x => x.Equipment).WithMany(x => x.CarEquipments);
        modelBuilder.Entity<CarEquipment>().HasOne(x => x.Car).WithMany(x => x.CarEquipments);
    }
0 голосов
/ 11 апреля 2020

Чтобы настроить отношение с помощью Fluent API в Entity Framework Core, начните с определения свойств навигации, которые составляют отношение. HasOne или HasMany определяет свойство навигации в типе сущности, для которой вы начинаете настройку. Затем вы соединяете вызов по номеру WithOne или WithMany, чтобы определить обратную навигацию. HasOne/WithOne используются для справочных навигационных свойств, а HasMany/WithMany используются для навигационных свойств коллекции.

См. документацию Microsoft с примером.

Пример :

public class Blog
{
    public int BlogId { get; set; }
    public string Url { get; set; }

    public List<Post> Posts { get; set; }
}

public class Post
{
    public int PostId { get; set; }
    public string Title { get; set; }
    public string Content { get; set; }

    public Blog Blog { get; set; }
}

class ApplicatioinDbContext : DbContext
{
    public DbSet<Blog> Blogs { get; set; }
    public DbSet<Post> Posts { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Post>()
            .HasOne(p => p.Blog)
            .WithMany(b => b.Posts);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...