我對如何正確處理Web API服務與業務邏輯的分離(特別是在使用服務堆棧時)存在疑問。我試圖改善上的代碼類似於以下內容:ServiceStack服務與業務邏輯分離
public class TenantService : Service
{
public object Post(TenantRequest req)
{
//create an instance of the struct to hold the data
TenantObject tenant = new tenant{ //set properties from the resquest};
TenantRecord.InsertRecord(tenant)
// create a response after this //
}
}
然後在我的業務邏輯我有類似下面的內容:
public class TenantRecord
{
public static void InsertRecord(TenantObject tenant)
{
//Instantiate a new Tenant POCO
Tenant newRecord = new Tenant
{
Id = 1, Name = tenant.Name, CreatedDate = DateTime.Now, ...//And so on
};
db.Insert(newRecord);
}
}
這是造成嚴重的頭痛處理不斷重寫相同的代碼主要是映射代碼,但不斷創建結構來傳遞信息來回導致大量的數據映射。另外,在某些情況下,一個請求必須處理很多不同類型的信息。
業務邏輯應該引用API並傳遞請求本身,還是這種當前方法是最合適的方法?任何幫助將不勝感激。
你可以嘗試使用[ServiceStack AutoMapper](https://github.com/ServiceStack/ServiceStack/wiki/Auto-mapping)(爲這種情況創建)。 – pasty