asp.netのMVCのエンティティからのマッピング、ビジネス・オブジェクト(DTOオブジェクト)のためのツール?
-
20-09-2019 - |
質問
(LINQ使用してDBから取得される - > SQL、エンティティ・フレームワークまたは任意の..)を実体からビジネス・オブジェクトを構築する任意のツールやユーティリティ(マッパーアセンブリ)がある
1が存在しない場合には、誰もがエンティティクラスから(私が今やっている)の特性を貼り付けるコピーすることができ、むしろ行うことができる最善の方法を提案することができます。?
解決
あなたは投影することにより、ビジネス・オブジェクトにマップされます。これはあなたのPOCOのビジネス・オブジェクトは、あなたのエンティティとは異なる形状を有していても動作します。
var q = from dataObject in Context.DataObjects
select new BusinessObject
{
Name = dataObject.Name,
RelatedObjectName = dataObject.RelatedObject.Name, // works even if RelatedObject is null
DirectChildren = from c in dataObject.Children
select new ChildBusinessObject
{
Name = c.Name
// etc.
}
GrandChildren = from c in dataObject.Children
from gc in c.Children
select new ChildBusinessObject
{
Name = c.Name
// etc.
},
// etc.
};
他のヒント
これは直接あなたの質問に答えるされていない - が、あまり複雑なプロジェクトのために、私はこの製品を使用 HTTP ://www.devexpress.com/Products/NET/ORM/する(DevExpress社から.NETオブジェクト・リレーショナル・マッパーツール)
Meldmappingクラスであるcmapper、Automapperの使用例
cMapper.FillBusinessObject(ViewModel, BusinessObject); // To map from ViewModel to BO
cMapper.FillModel(BusinessObject, ViewModel); // To map from BO to ViewModel
投票していただきありがとうございました:)
所属していません StackOverflow