Ваш пример - это не отношение многие ко многим, это скорее рекурсивные отношения.
Я не уверен, как это исправить.Но проблема с вашим кодом состоит в том, что вы получите два поля в одной строке с одинаковым именем.MemberId для идентификатора строки и MemberId для идентификатора друга.
Редактировать
Попробуйте сделать это так:
class Member
{
[Key]
public int MemberId { get; set; }
public string Name { get; set; }
public virtual IList<FriendRelationship> Friends { get; set; }
}
class FriendRelationship
{
[Key]
public int RelationshipId { get; set; }
public Member Friend { get; set; }
}