Спасибо
Толстый Лорри, за подсказку.
Действительно, без указания ссылки на коллекцию записей в дочерней таблице в виде вот такого свойства:
public virtual ICollection Messages { get; set; }
EF не мог понять, в каких отношениях находятся эти две таблицы.
но этого оказалось недостаточно, т.к. все равно существовала неоднозначность, которую получилось разрешить при помощи атрибута InversePropertyAttribute, который я добавил перед этим самым свойством.
в результате структура классов стала вот такой:
public class ForumTopic
{
[Key, DatabaseGenerated(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.Identity)]
public int TopicId { get; set; }
public int LastMessageId { get; set; }
[ForeignKey("LastMessageId")]
public virtual ForumMessage LastMessage { get; set; }
[InverseProperty("Topic")]
public virtual ICollection<ForumMessage> Messages { get; set; }
}
public class ForumMessage
{
[Key, DatabaseGenerated(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.Identity)]
public int MessageID { get; set; }
public int TopicID { get; set; }
[ForeignKey("TopicID")]
public virtual ForumTopic Topic { get; set; }
}