我有以下领域模型:
public class DaybookEnquiry : Entity
{
public DateTime EnquiryDate { get; set; }
[ForeignKey("EnquiryType")]
public int DaybookEnquiryTypeId { get; set; }
public string AccountNumber { get; set; }
[ForeignKey("User")]
public int UserId { get; set; }
#region Navigation Properties
public virtual User User { get; set; }
public virtual DaybookEnquiryType EnquiryType { get; set; }
public virtual ICollection<DaybookQuoteLine> QuoteLines { get; set; }
#endregion
}
这是一个名为DomainModel
. Entity
只是我的域模型继承的基类,它包含一个Id
字段。
然后,我的解决方案中有其他项目,称为ServiceInterface
and ServiceModel
。ServiceInterface
包含我为我的应用程序提供的所有服务,并ServiceModel
包含我的 DTO 和路线等。我正在尝试遵循此处列出的指南:物理项目结构
MyEnquiriesService
包含一种使用存储库在我的数据库中创建新查询的方法:
public void Post(CreateEnquiry request)
{
// Not sure what to do here..
// _repository.Insert(request);
}
我的CreateEnquiry
请求如下所示:
[Api("POST a single Enquiry for Daybook.")]
[Route("/enquiries", "POST")]
public class CreateEnquiry : IReturnVoid { }
如您所见,CreateEnquiry
请求对象为空。我是否需要向它添加属性以匹配我的域模型,然后使用 AutoMapper 或类似的东西将字段映射到我的域模型并将其传递到我的存储库中?
我的存储库上的Insert
方法如下所示:
public virtual void Insert(T entity)
{
DbEntityEntry dbEntityEntry = DbContext.Entry(entity);
if (dbEntityEntry.State != EntityState.Detached)
{
dbEntityEntry.State = EntityState.Added;
}
else
{
DbSet.Add(entity);
}
DbContext.SaveChanges();
}