Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于从asp.net mvc中的实体映射业务对象(DTO对象)的工具?_Asp.net_Linq_Entity Framework_Data Binding_Datamapper - Fatal编程技术网

用于从asp.net mvc中的实体映射业务对象(DTO对象)的工具?

用于从asp.net mvc中的实体映射业务对象(DTO对象)的工具?,asp.net,linq,entity-framework,data-binding,datamapper,Asp.net,Linq,Entity Framework,Data Binding,Datamapper,是否有任何工具或实用程序(映射程序集)可以从实体(使用linq->sql、实体框架或其他工具从数据库中获取)构造业务对象 如果没有,谁能建议最好的方法,而不是从实体类复制粘贴属性(我现在正在做的事情) 您可以通过投影映射到业务对象。即使您的POCO业务对象与您的实体具有不同的形状,这也可以工作 var q = from dataObject in Context.DataObjects select new BusinessObject {

是否有任何工具或实用程序(映射程序集)可以从实体(使用linq->sql、实体框架或其他工具从数据库中获取)构造业务对象

如果没有,谁能建议最好的方法,而不是从实体类复制粘贴属性(我现在正在做的事情)


您可以通过投影映射到业务对象。即使您的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.
        };

这不是直接回答您的问题-但对于不太复杂的项目,我使用此产品(.NET Object Relational Mapper Tool from DevExpress)

使用Automapper的示例,cmapper是一个Meldmapping类

 cMapper.FillBusinessObject(ViewModel, BusinessObject);  // To map from ViewModel to BO

 cMapper.FillModel(BusinessObject, ViewModel);  // To map from BO to ViewModel

感谢您的投票:)

除了LINQ,您还需要什么?LINQ->sql为我提供数据对象。如何将它们映射到定制的业务对象。?这是伟大的克雷格。你能推荐一些工具吗。?使之自动化。为每个实体手动执行此操作非常繁琐。我发现LINQpad在这方面非常有价值,并且它支持LinqTo实体。不过,它并不是自动完成的。不过,VS智能感知对我来说已经足够了;最终,您只需输入很少的实际查询。我不想完全自动执行,因为如果您只选择业务方法实际需要的相关对象,而不是实体的每个属性,那么性能会大大提高。AutoMapper不会在单个查询中加载相关实体。LINQ会的。你说的是ORM工具。获取数据对象。我现在需要从数据对象构建业务对象。