使用TableController插入具有依赖项的实体的好方法是什么?

时间:2016-02-05 15:04:15

标签: entity-framework-6 azure-mobile-services dto

我正在努力在azure移动服务中使用表控制器插入一个引用其他现有实体的新实体。

这是我的设置:

实体:

.php

DTOS:

public class EntityB : EntityData
{
   public EntityA Parent { get; set; }
   //some data
}

public class EntityA : EntityData
{
   //some data
}

控制器:

public class DtoEntityB : EntityData
{
   public DtoEntityA Parent { get; set; }
   //some data
}

public class DtoEntityA : EntityData
{
   //some data
}

映射器:

public class Controller : TableController<DtoEntityB>
{
   public virtual async Task<DtoEntityB> Post(DtoEntityB entity)
   {
      return await InsertAsync(entity);
   }    
}

EntityA已经存在,所以我进行了一次客户端调用,导致JSON被发送到Post方法。然后一切正常,直到EF告诉我已经有一个id = 317238621736的EntityA。

AutoMapper.Mapper.Initialize(cfg =>
{
   // use other mapper
   cfg.CreateMap<DtoEntityB, EntityB>();
   cfg.CreateMap<EntityB, DtoEntityB>();

   cfg.CreateMap<DtoEntityA, EntityA>();
   cfg.CreateMap<EntityA, DtoEntityA>();
}

我正在寻找这个问题的通用解决方案(现在我对每个现有引用的上下文(attach)进行直接操作,将它与Mapper结合起来使得这种方法不可持续。

0 个答案:

没有答案