EF Core跟踪个人财产更新

时间:2017-07-09 11:20:07

标签: c# linq entity-framework-core

使用EF Core 1.1

实体模型

public class ParentEntity
{
    public Guid Id { get; set; }
    public string Name { get; set; }
    public ICollection<ChildEntity> ChildEntities{ get; set; }
}


public class ChildEntity
{
    public Guid Id { get; set; }
    public string Name { get; set; }
    public bool IsDeleted { get; set; }
    public Guid ParentEntityId { get; set; }
    public ParentEntity ParentEntity { get; set; }
}

ChildEntity只能通过更新ParentEntity来操纵。

所以我有一个存储库类,其中包含ParentEntity

的更新方法
public class Repository
{
    public async Task UpdateParentEntity(ParentEntity updatedParentEntity)
    {
        // Implementation Logic
    }
}

实施逻辑是这样的:

  • 如果ParentEntity.ChildEntity中的updatedParentEntity EXISTS但不在数据库中那么添加
  • 如果ParentEntity.ChildEntity EXISTS in the database BUT NOT in the updatedParentEntity THEN set the IsDeleted` property = true

我是通过一个涉及大量循环的“强力”实现来完成的,但我想知道Entity Framework和LINQ是否提供了更优雅的方式来处理这种情况?

0 个答案:

没有答案