Однонаправленные ассоциации «один ко многим» в Entity Framework 4? - PullRequest
2 голосов
/ 30 мая 2010

Поддерживает ли EF 4 однонаправленные ассоциации «один ко многим», например:

public class Parent
{
  public int Id { get; set; }
  public string Something { get; set; }
  public List<Child> AllMyChildren { get; set; }
}

public class Child
{
  public int Id { get; set; }
  public string Anotherthing { get; set; }
  // I don't want a back-reference to the Parent!
  // public int ParentId { get; set; }
}

Когда я пытаюсь скомпилировать свой проект с ассоциацией между Родителем и Дочерним, когда Навигация End2 пуста (потому что я снял флажок Свойство Навигации End2 в диалоговом окне Добавить ассоциацию), я получаю

Ошибка 2027: не указано сопоставление для следующего EntitySet / AssociationSet - Child.

UPDATE:

А что, если у меня есть просто List или подобное свойство в Parent, а не в List? Нужно ли создавать тип обтекания для хранения строки, чтобы я мог также хранить обратную ссылку на родительский элемент?

1 Ответ

2 голосов
/ 07 января 2012

Считайте, что это будет работать с использованием Fluent API (единственный способ определения однонаправленных ассоциаций)

modelBuilder.Entity<Child>()
.HasKey(t => t.Id);

modelBuilder.Entity<Parent>()
.HasMany(p => p.AllMyChildren)
.WithRequiredPrincipal();

http://msdn.microsoft.com/en-us/library/hh295843(v=VS.103).aspx

...