Скажем, у меня есть следующие объекты:
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);
Но я не хочу свойства навигации в данном случае.
В случае Ядра 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
}