Основные связи EF «один ко многим» HasOne().WithMany() и HasMany().WithOne()C#

Место общения программистов C#
Anonymous
Основные связи EF «один ко многим» HasOne().WithMany() и HasMany().WithOne()

Сообщение Anonymous »

Предположим, у меня есть следующие 2 модели:

Код: Выделить всё

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

public List
 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; }
}
Теперь, если я хочу настроить отношения моделей в DbContext, есть ли разница между:

Код: Выделить всё

modelBuilder.Entity
()
.HasOne(p => p.Blog)
.WithMany(b => b.Posts);
и

Код: Выделить всё

modelBuilder.Entity()
.HasMany(b => b.Posts)
.WithOne(p => p.blog);
а если есть разница, то какая? мне следует написать оба или только один из них?

В качестве примечания: Нужно ли мне определять внешние ключи? Основываясь на моих знаниях о базах данных, вы не можете создавать отношения без внешних ключей, но EF не требует наличия полей внешнего ключа. Так как же EF обрабатывает отношения, не зная внешних ключей? Вызывает ли это падение производительности или ошибки?

Подробнее здесь: https://stackoverflow.com/questions/397 ... ny-withone

Вернуться в «C#»