我尝试通过集合的navigation属性添加实体,但是出现以下消息:
“数据库操作预期会影响1行,但实际上会影响0行。自从加载实体以来,数据可能已被修改或删除。有关了解和处理乐观并发异常的信息,请参见http://go.microsoft.com/fwlink/?LinkId=527962。”] >
模型是:
SuggestionGroupDb:
public class SuggestionGroupDb { public Guid Id { get; set; } [Required] public string UserId { get; set; } [ForeignKey("UserId")] public virtual TeguUserDb User { get; set; } [Required(AllowEmptyStrings=false, ErrorMessage = "Required")] [StringLength(30, MinimumLength = 1, ErrorMessage = "Invalid")] public string Name { get; set; } public int OrderNo { get; set; } public virtual ICollection<SuggestionItemDb> Items { get; set; } }
SuggestionItemDb:
public class SuggestionItemDb { public Guid Id { get; set; } [Required] public Guid SuggestionGroupId { get; set; } [ForeignKey("SuggestionGroupId")] public virtual SuggestionGroupDb SuggestionGroup { get; set; } [Required(AllowEmptyStrings=false, ErrorMessage = "Required")] [StringLength(30, MinimumLength = 1, ErrorMessage = "Invalid")] public string Name { get; set; } public int OrderNo { get; set; } }
SuggestionGroup存储库更新功能(简化):
public async Task<SuggestionGroupRepositoryResult> UpdateAsync(string userid, SuggestionGroupDb suggestiongroup) { // Step 01 - Get the Entity var dbSuggestionGroup = await GetAsync(userid, suggestiongroup.Id, suggestiongroup.Name); // Step 02 - Update the items (just add one now) foreach (var item in suggestiongroup.Items) { var sidb = new SuggestionItemDb() {Id = item.Id, Name = item.Name, OrderNo = item.OrderNo, SuggestionGroupId = item.SuggestionGroupId}; dbSuggestionGroup .Items.Add(sidb); } // Step 03 - Update the changes try { var updated = context.AccSuggestionGroups.Update(dbSuggestionGroup); await context.SaveChangesAsync(); return new SuggestionGroupRepositoryResult("Valid") /*{SuggestionGroup = updated.Entity}*/; } catch (Exception e) { context.Reset(); return new SuggestionGroupRepositoryResult("Failed", e.Message); } }
问题在于,SaveChanges会抛出异常,并且出现给定的消息。是否可以通过uggestinationgroup更新suggestionItems?
我正在使用EF Core 3.0预览版6。
我尝试通过集合的导航属性添加实体,但是出现以下消息:“数据库操作预期会影响1行,但实际上影响0行。数据可能具有...
在EF Core 3.0之前,通过DetectChanges
策略发现的未跟踪实体(在您的情况下,通过将未跟踪实体添加到集合中,将自动处于Added
状态。
已经不再是这种情况。