dto的應用場景:
定義產品類:
public class product定義productdto物件:public decimal productunitprice
}
public class productdto定義兩個類:public decimal productunitprice
}
public class address多個物件的對映類:public string addresscity
public string addressstreet
}public class customer
public string customermobile
public address customeraddress
}
public class customerdto對映的**:public string mobile
public string state
public string city
public string street
}
;return pdto;}};
return customerdto;
}//簡單
);customer customer = new customer
};return customerdto;}}
在上下文介面中(irepositorycontext)中定義dto的支援:
//新增dto物件倉儲介面的調整:void registercreatedto(tdto tdto, actionprocessdto)
where taggreateroot :
class, iaggreateroot;
void registerupdate(taggreateroot aggreateroot) where taggreateroot :
class, iaggreateroot;
void registerupdatedto(tdto tdto, actionprocessdto) where taggreateroot :
class, iaggreateroot;
void create(tdto tdto);上下文dto定義:(讓ef上下文實現)tdto getbyid(guid id);
listgetbycondition(expression> condition);
void update(tdto tdto);
void remove(tdto tdto);
public abstract void registercreatedto(tdto tdto, actionprocessdto)ef上下文中實現:where taggreateroot : class, iaggreateroot;
public abstract void registerupdatedto(tdto tdto, actionprocessdto)
where taggreateroot : class, iaggreateroot;
public abstract void registerremovedto(tdto tdto, actionprocessdto)
where taggreateroot : class, iaggreateroot;
public override void registercreatedto(tdto tdto, actionprocessdto)efrepository ef 倉儲中的實現:public override void registerupdatedto(tdto tdto, actionprocessdto)
public override void registerremovedto(tdto tdto, actionprocessdto)
public void create(tdto tdto)定義產品dto類:public listgetbycondition(expression> condition)
}return tdtos;
}public tdto getbyid(guid id)
public void remove(tdto dto)
public void update(tdto dto)
public class productdto在productcategory中實現建構函式:public string name
public string color
public string size
public int amount
public decimal unitprice
public string pcategoryname
public string pdescription
}
public productcategory()在product中實現dto:
public product(irepositoryirepository)得到產品dto 的方法://在呼叫建構函式的時候完成對映的建立
});//返回介面的東西
mapout.constructprojectionusing(p => new productdto);}
/// /// 得到產品dto通過dto 建立product:///
///
///
public product getproducybyname(string productname)
/// /// 通過dtocreate服務 dto 的建立:///
///
public void createproduct(productdto productdto)
/// /// 服務dto的建立通過dto建立測試:///
///
public void createproduct(productdto productdto)
///
/// dto的查詢
///
///
///
public productdto getproductdtobyname(string productname)
[testmethod]public void createproduct()
[testmethod]
public void getproductdtobyname()
DDD領域驅動設計 應用層,AutoMapper
我們先來寫檢視模型,就是扔給ui層的實體 public class orderviewmodel required errormessage the order name is required minlength 2 maxlength 100 displayname name public st...
DDD中的「領域模型」
在網上搜尋領域模型,有大量的文章。一種是 於最初的傳統軟體開發過程,一種 於領域驅動設計 ddd 在傳統軟體開發中,軟體設計師通常使用uml語言進行系統建模,裡面也在強調領域模型的重要性,這兩者很容易混淆。我給大家找到了一些資料,先來看看傳統軟體開發中,領域模型是什麼。領域模型是什麼?理論派觀點 實...
DDD領域模型閱讀思考
ddd領域模型閱讀思考 常見軟體設計模式注重資料庫和資料表模型,把錶捋出來來以後,彷彿 流程就出來了,但這個只是多個儲存模型,儲存資料的流程,這樣是能完成儲存資料的功能,但是是很底層的設計思路,思路固化以後,會容易寫出麵條串似的業務流程 沒有確定 領域邊界,不是至頂向下,而是從底向上的思考,這樣的 ...