2014-11-29 4 views
0

Я довольно новичок в Entity Framework и первом подходе к коду, и я застрял. Извините, если это глупый вопрос.EF6 Несколько внешних ключей для ошибки ApplicationUser

Я нашел здесь несколько вопросов, которые выглядят одинаково, но я получаю другую ошибку, которую получают другие люди, и я хотел бы ее решить без необходимости добавления других параметров, если это возможно.

Так в основном, у меня есть ApplicationUser (загрузить в удостоверениях), который выглядит следующим образом:

public class ApplicationUser : IdentityUser 
{ 
    public virtual Province Provincie { get; set; } 

    [ForeignKey("From")] 
    public virtual ICollection<Message> SentMessages { get; set; } 

    [ForeignKey("To")] 
    public virtual ICollection<Message> ReceivedMessages { get; set; } 


} 

И у меня есть класс сообщения, который выглядит как:

public class Message 
{ 
    [Key] 
    public int ID { get; set; } 
    public virtual ApplicationUser From { get; set; } 
    public virtual ApplicationUser To { get; set; } 
    public String MessageContent { get; set; } 
    public DateTime Date { get; set; } 
} 

Теперь, когда я попробуйте добавить миграцию, я получаю следующую ошибку:

The ForeignKeyAttribute on property 'ReceivedMessages' on type 'EF_CF_Basics.Models.ApplicationUser' is not valid. The foreign key name 'To' was not found on the dependent type 'EF_CF_Basics.Models.Message'. The Name value should be a comma separated list of foreign key property names.

Так что, на самом деле, визуальная студия говорит мне, что это не найти сообщение «Кому», но это действительно так.

ответ

2

Возможно, вы захотите использовать [InverseProperty("From")] вместо [ForeignKey("From")] и [InverseProperty("To")] вместо [ForeignKey("To")]. Свойства внешнего ключа должны быть скалярами (int, string, Guid и т. Д.), Но ваши свойства From и To на самом деле являются объектами, то есть являются навигационными свойствами.

+0

СПАСИБО! Это сработало. – JoJo

Смежные вопросы