Исключение DbUpdateException в db.SaveChanges()
в моем UploadReferencePhoto ActionResult
при попытке загрузить фотографию в базу данных SQL через мое приложение. Сначала я использую код с наследованием на основе таблицы. Модели, связанные со сценарием являются следующие:DbUpdateException (инструкция вставки противоречит ограничениям внешнего ключа) при добавлении изображения (массив байтов) в базу данных
UserProfile:
[Table("UserProfile")]
public class UserProfile
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
// ...
}
Наниматель:
[Table("Tenant")]
public class Tenant : UserProfile
{
public Tenant()
{
this.ReferencePhotos = new List<ReferencePhoto>();
}
public virtual ICollection<ReferencePhoto> ReferencePhotos { get; set; }
}
Изображение:
[Table("Image")]
public class Image
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int ImageId { get; set; }
}
ReferencePhoto:
[Table("ReferencePhoto")]
public class ReferencePhoto : Image
{
// 1:many with Tenant
public int UserId { get; set; }
[ForeignKey("UserId")]
public virtual Tenant Tenant { get; set; }
}
So Tenant
распространяется UserProfile
и ReferencePhoto
распространяется Image
. Когда я нажимаю кнопку, вызывается вышеупомянутое исключение. Внутреннее исключение состоит в следующем:
"Заявление ВСТАВИТЬ конфликтные с ограничением FOREIGN KEY \" FK_dbo.ReferencePhoto_dbo.Tenant_UserId \ "Конфликт произошел в базе данных \" C: \ Users \ HOME \ DESKTOP \ LETLORD \ LETLORD \ App_Data \ LETLORD.MDF \ "таблица \ "dbo.Tenant \", столбец" UserId. \ г утверждение \ NThe было прервано."}
Может кто-нибудь сказать мне, что именно внутреннее исключение говорит и, возможно, как его разрешить? Сообщите мне, требуется ли больше кода/информации.
Спасибо, проблема решена установкой FK 'reference.UserId = tenantRepository.GetLoggedInTenant(). UserId;'. По какой-то причине я не думал, что должен был непосредственно установить FK. – MattSull
Я был бы рад за вас, но я вулкан и не способен показать человеческие эмоции. –