У меня проблема. У меня есть два класса, которые я использую в Entity Framework. Первый - это человек Класс: С int id, имя строки и действие (включая внешний ключ). Второй - класс действия. С идентификатором, временем и лицом (включая иностранный ключ). Когда я пытаюсь выполнить миграцию, я получаю сообщение об ошибке, которое я должен использовать Fluent Api, чтобы создать связь между этим. Я искал немного, но это швы, чтобы быть случаем, о котором я не мог найти информацию.Fluent Api - Person and Creation
public class Person
{
[Key]
public int IdPerson { get; set; }
public string Name{ get; set; }
public int? CreationId { get; set; }
[ForeignKey("CreationId")]
public Action Creation{ get; set; }
}
public class Action
{
[Key]
public int IdAction { get; set; }
[Required]
[Column(TypeName = "DateTime2")]
public DateTime Moment { get; set; }
public int? PersonId { get; set; }
[ForeignKey("PersonId")]
public Person Person { get; set; }
}
Сообщение об ошибке на немецком языке:
Das Prinzipalende einer Zuordnung zwischen den Typen 'FunWeb.Models.Core.Person' und 'FunWeb.Models.Core.Aktion' konnte nicht ermittelt werden. Das Prinzipalende dieser Zuordnung muss mithilfe der Fluent-API für Beziehungen oder mithilfe von Datenanmerkungen explizit konfiguriert werden.
Но он говорит, что мне нужно настроить связь по моей собственной личности.
Извините за мой английский и спасибо за вашу помощь
Edit: Я пробовал:
modelBuilder.Entity<Person>().HasRequired(p => p.Creation).WithOptional(a => a.Person);
Но я получаю следующее сообщение об ошибке:
Das 'ForeignKeyAttribute' der Eigenschaft 'Person' für den Typ 'Models.Core.Action' ist ungültig. Der Fremdschlüsselname 'PersonId' wurde im abhängigen Typ 'Models.Core.Person' nicht gefunden. Der Name-Wert muss eine durch Trennzeichen getrennte Liste mit Namen von Fremdschlüsseleigenschaften sein.
Я пытаюсь перевести : ForeignKeyAttribute of the propaty Лицо для типа Действие действует. ForeignKey 'PersonId' не удалось найти в «Models.Core.Person». Значение имени должно быть отдельным списком имен для ForeignKeyAttributes.
И где остальная часть вашего вопроса? –
Простите, пропустили кнопку предварительного просмотра и нанесли удар. Я обновил его сейчас. – user3460436
Не могли бы вы также добавить соответствующий код и полный текст сообщения об ошибке? См. [Запрос помощи] (http://stackoverflow.com/help/how-to-ask) для получения дополнительных рекомендаций. –