私は2つのクラスを持っています:
public class Present : ITripleStarModelBase
{
[Key]
public int Id { get; set; }
public virtual ICollection<PresentPhoto> PresentPhotos { get; set; }
[MaxLength(100)]
[Index(IsUnique = true)]
[Required]
[Changable]
public string Name { get; set; }
[MaxLength(500)]
[Changable]
public string Description { get; set; }
[Changable]
public float Points { get; set; }
public DateTime CreatedAt { get; set; }
[Changable]
public DateTime ModifiedAt { get; set; }
[Changable]
public bool IsActive { get; set; }
}
そして
public class PresentPhoto :ITripleStarModelBase
{
[Key]
public int Id { get; set; }
//public int PresentId { get; set; }
//[ForeignKey("PresentId")]
//public virtual Present Present { get; set; }
public int PresentId { get; set; }
[ForeignKey("PresentId")]
public virtual Present Present { get; set; }
[MaxLength(50)]
[Required]
public string PhotoName { get; set; }
public int Size { get; set; }
public DateTime CreatedAt { get; set; }
public DateTime ModifiedAt { get; set; }
}
私は写真のようにデータベースに現在のオブジェクトを追加しようとしています:
obj = RequestHelper.getRequestBody<Present>();
using (var dbContextTransaction = db.Database.BeginTransaction())
{
try
{
obj.IsActive = true;
db.Presents.Add(obj);
db.SaveChanges();
foreach (var item in obj.PresentPhotos)
{
if (item.Id == 0)
{
item.PresentId = obj.Id;
db.PresentPhotos.Add(item);
}
}
db.SaveChanges();
dbContextTransaction.Commit();
}
catch (Exception ex2)
{
dbContextTransaction.Rollback();
throw ex2;
}
}
これは常に
System.Collections.Generic.IEnumerable型の式に[]でインデックス付けを適用できません
秒のdb.saveChanges()メソッドで検証エラーが発生しました。現在と写真を更新しようとすると、同じエラーが発生しています。
エラーは内部で最大長の例外でした。メッセージはそれだった。私はそれの中でなぜvaliadtion例外にアクセスできないのか分かりません。 validationErrorType、エラークラス、エラーフィールドなどの値を取得します。
彼らは非常に大きなプロジェクトを書いています。彼らはすべての例外を隠している。私はこの素人主義を信じることができません。