Tôi là nhà phát triển asp.net xanh và tôi đang sử dụng khung pháp nhân mới nhất với dự án của mình. Tôi đang gặp vấn đề khi tạo cơ sở dữ liệu của tôi với các giá trị được tạo tự động (tôi nghĩ). Đây là lỗi chính xác.Tuyên bố INSERT xung đột với ràng buộc KEY FOREGIGN
Dưới đây là các mã:
public class Address
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int AddressId { get; set; }
// some more properties
}
public class ApplicationUser : IdentityUser
{
[ForeignKey("Address")]
public int AddressId { get; set; }
public Address Address { get; set; }
// some more properties
}
public class Shelter
{
[Required]
[ForeignKey("Address")]
public int AddressId { get; set; }
public Address Address { get; set; }
// some more properties
}
//seed
private void CreateShelters()
{
EntityEntry<Address> MspcaAddress = DbContext.Addresses.Add(new Address()
{
Street = "350 S Huntington Ave",
City = "Jamaica Plain",
State = "MA",
AreaCode = "02130",
Latitude = 42.3228928,
Longititude = -71.11120540000002
});
EntityEntry<Address> BostonAnimalCareAndControlAddress = DbContext.Addresses.Add(new Address()
{
Street = "26 Mahler Rd",
City = "Roslindale",
State = "MA",
AreaCode = "02131",
Latitude = 42.2943377,
Longititude = -71.12153390000003
});
EntityEntry<Address> AnimalRescueLeagueOfBostonAddress = DbContext.Addresses.Add(new Address()
{
Street = "10 Chandler St",
City = "Boston",
State = "MA",
AreaCode = "0S2116",
Latitude = 42.3470486,
Longititude = -71.06976929999996
});
EntityEntry<Shelter> Mspca = DbContext.Shelters.Add(new Shelter()
{
Name = "MCSPA",
AddressId = MspcaAddress.Entity.AddressId
});
EntityEntry<Shelter> BostonAnimalCareAndControl = DbContext.Shelters.Add(new Shelter()
{
Name = "Boston Animal Care And Control",
AddressId = BostonAnimalCareAndControlAddress.Entity.AddressId
});
EntityEntry<Shelter> AnimalRescueLeagueOfBoston = DbContext.Shelters.Add(new Shelter()
{
Name = "Animal Rescue League Of Boston Address",
AddressId = AnimalRescueLeagueOfBostonAddress.Entity.AddressId
});
DbContext.SaveChanges();
}
tôi đã cố gắng tái tạo lại cơ sở dữ liệu để xem nếu một vấn đề với dữ liệu không phù hợp/bảng nhưng tôi vẫn nhận được lỗi. Bất kỳ ý tưởng?
Đặt tiền thưởng không làm cho câu hỏi trở nên tốt hơn. Bạn vẫn cần phải cung cấp [mcve] để tránh theo dõi các nhận xét như * Tôi vẫn gặp lỗi ... *. Bởi vì thông báo ngoại lệ cho thấy rõ ràng vấn đề không nằm trong mã được cung cấp (mặc dù rất có thể nó có cùng vấn đề), nhưng trong một mã chèn 'ApplicationUser'. –
Mã bạn đã cung cấp không thêm 'ApplicationUser' mới vào cơ sở dữ liệu, trong khi lỗi nói rằng khóa ngoài bị vi phạm cho' ApplicationUser'. Bạn có chắc là bạn đang gỡ lỗi và chia sẻ cùng một mã. Xin vui lòng xem lại mã đăng bài mã chính xác nếu nó không giống nhau. –