У меня есть модель класса Profile
и DbContext
:
public class UserContext : DbContext
{
public DbSet<User> Users { get; set; }
public DbSet<Profile> Profiles { get; set; }
public UserContext() : base("name=UserContext") { }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
Database.SetInitializer(new MigrateDatabaseToLatestVersion<UserContext, MigrateDBConfiguration>());
}
}
public class Profile
{
[Key]
[Required]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
[JsonProperty("pk")]
public long User_Id { get; set; }
public string username { get; set; }
[Column("Follower_Id")]
public ICollection<Profile> Followers { get; set; }
[Column("Following_Id")]
public ICollection<Profile> Following { get; set; }
}
Когда я запускаю этот код:
using (UserContext db = new UserContext())
{
User = db.Users.FirstOrDefault(e => e.Profile.User_Id.Equals(User_Id));
var profile = (await GetUserInfo(User_Id)).GetResult();
await GetUserFollowing(profile);
await GetUserFollowers(profile);
if (User == null)
{
User = db.Users.Add(new User()
{
Profile = profile,
UserName = login
});
}
else
{
var p = db.Profiles
.Include("Followers")
.Include("Following")
.FirstOrDefault(e => e.User_Id.Equals(User_Id));
p.Followers = profile.Followers;
p.Following = profile.Following;
User.Profile = p;
}
await db.SaveChangesAsync();
}
Я получаю эту ошибку:
Нарушение ограничения PRIMARY KEY 'PK_dbo.Profiles'. Невозможно вставить дубликат ключа в объект 'dbo.Profiles'. Дубликат значения ключа (856399).