Je suis ce tutoriel pour mettre en œuvre mon système d'amitié avec EF Core 1.1: http://www.codedodle.com/2014/12/social-network-friends-database.htmlComment mettre en œuvre une auto-référence de plusieurs à plusieurs relation avec Entity Framework Core 1.1?
Friendship.cs
public class Friendship
{
public Guid ApplicationUserId { get; set; }
public ApplicationUser ApplicationUser { get; set; }
public Guid FriendId { get; set; }
public ApplicationUser Friend { get; set; }
public StatusCode Status { get; set; }
public Guid ActionUserId { get; set; }
public ApplicationUser ActionUser { get; set; }
public byte[] Timestamp { get; set; }
}
public enum StatusCode
{
Pending = 0,
Accepted = 1,
Declined = 2,
Blocked = 3
}
ApplicationUser.cs
public class ApplicationUser : IdentityUser<Guid>
{
...
public ICollection<Friendship> FriendRequestsMade { get; set; }
public ICollection<Friendship> FriendRequestsAccepted { get; set; }
public byte[] Timestamp { get; set; }
}
MyDbContext. cs
public class SocialCircleContext : IdentityDbContext<ApplicationUser, Role, Guid>
{
builder.Entity<Friendship>()
.HasIndex(x => new { x.ApplicationUserId, x.FriendId })
.IsUnique();
builder.Entity<Friendship>()
.HasOne(x => x.ApplicationUser)
.WithMany(y => y.FriendRequestsMade)
.HasForeignKey(x => x.ApplicationUserId).OnDelete(DeleteBehavior.Restrict);
builder.Entity<Friendship>()
.HasOne(x => x.Friend)
.WithMany(y => y.FriendRequestsAccepted)
.HasForeignKey(x => x.FriendId);
}
Résultat de la migration Add-InitialMigration
Impossible de déterminer la relation représentée par la navigation 'Friendship.ActionUser' de type 'ApplicationUser'. Configurez manuellement la relation ou ignorez cette propriété à partir du modèle.
De plus, comme EF Core évolue rapidement, j'ai trouvé plusieurs façons de le faire. Je ne suis pas sûr de ma mise en œuvre de la relation de plusieurs-à-plusieurs auto-référence, quelqu'un peut-il me donner un conseil?
- Comment puis-je définir la relation entre Friendship.ActionUser et ApplicationUser?
- Un conseil sur la façon correcte d'implémenter cette relation plusieurs-à-plusieurs auto-référencée? EF Core se déplace rapidement, j'ai trouvé de nombreuses façons en ligne, mais ils semblent désuets
Merci! :)
Partiellement un bug ainsi classé https://github.com/aspnet/EntityFramework/issues/8886 – Smit