我有兩個班:
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; }
}
我正在嘗試將帶有照片的當前對象添加到db,如:
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,錯誤類,錯誤字段等值。
他們正在寫一個非常大的項目。但是他們隱藏了所有例外。我無法相信這種業餘愛好。