Код EF Первый внешний ключ без свойства навигации

Скажем, у меня есть следующие объекты:

public class Parent
{
    public int Id { get; set; }
}
public class Child
{
    public int Id { get; set; }
    public int ParentId { get; set; }
}

Каков код сначала, быстрый синтаксис API для осуществления того ParentId создается в базе данных с ограничением внешнего ключа к таблице Parents без потребности иметь свойство навигации?

Я знаю, что, если я добавляю свойство Parent to Child навигации, затем я могу сделать это:

modelBuilder.Entity<Child>()
    .HasRequired<Parent>(c => c.Parent)
    .WithMany()
    .HasForeignKey(c => c.ParentId);

Но я не хочу свойства навигации в данном случае.

61
задан 2 January 2014 в 19:23

1 ответ

В случае Ядра EF необходимо не обязательно обеспечить свойство навигации. Можно просто обеспечить Внешний ключ на одной стороне отношений. Простой пример с Быстрым API:

    using Microsoft.EntityFrameworkCore;
    using System.Collections.Generic;

    namespace EFModeling.Configuring.FluentAPI.Samples.Relationships.NoNavigation
    {
        #region Model
        class MyContext : DbContext
        {
            public DbSet<Blog> Blogs { get; set; }
            public DbSet<Post> Posts { get; set; }

            protected override void OnModelCreating(ModelBuilder modelBuilder)
            {
                 modelBuilder.Entity<Post>()
                    .HasOne<Blog>()
                    .WithMany()
                    .HasForeignKey(p => p.BlogId);
             }
        }

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

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

            public int BlogId { get; set; }
        }
        #endregion
    }
2
ответ дан 31 October 2019 в 15:25

Другие вопросы по тегам:

Похожие вопросы: