我有以下的域模型:請求DTO地圖領域模型
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
和ServiceModel
。 ServiceInterface
包含了我所有的服務我的應用程序和ServiceModel
包含我的DTO的和路線等。我想跟隨這裏設立的準則:Physical Project Structure
我EnquiriesService
包含使用創建我的數據庫進行新的調查方法庫:
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();
}