アプリケーションを介してSQLデータベースに写真をアップロードしようとするとdb.SaveChanges()
、DbUpdateExceptionがスローされます。UploadReferencePhoto ActionResult
私は最初にタイプごとのテーブル継承でコードを使用しています。シナリオに関連するモデルは次のとおりです。
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; }
}
参考写真:
[Table("ReferencePhoto")]
public class ReferencePhoto : Image
{
// 1:many with Tenant
public int UserId { get; set; }
[ForeignKey("UserId")]
public virtual Tenant Tenant { get; set; }
}
したがって、 Tenant
extendsUserProfile
およびReferencePhoto
extends Image
。[アップロード]をクリックすると、前述の例外がスローされます。内部例外は次のとおりです。
"INSERTステートメントがFOREIGNKEY制約\"FK_dbo.ReferencePhoto_dbo.Tenant_UserId\"と競合しました。競合はデータベース\"C:\ USERS \ HOME \ DESKTOP \ LETLORD \ LETLORD \ APP_DATA \ LETLORD.MDF \ "、テーブル\で発生しました"dbo.Tenant \"、列'UserId'。\r\nステートメントは終了しました。"}
誰かが、内部の例外が正確に何を言っているのか、そしておそらくそれを解決する方法を教えてもらえますか?さらにコード/情報が必要な場合はお知らせください。