关于EmitMapper映射问题:不同类类型之间的映射
public class BookStoreDTO{
public string name {get;set;}
public List<BookDTO> books {get;set;}
public Address address {get;set;}
}
public class BookStore
{
public string name {get;set;}
public List<Book> books {get;set;}
public Address address {get;set;}
}
public class BookDTO
{
public string title {get;set;}
....
}
public class Book
{
public string title {get;set;}
.....
}
public class Address
{
public string contry {get;set;}
....
}
问题:
我想把BookStoreDTO映射到BookStore中,但不会把List<BookDTO>映射到List<Book>中,
是不是需要自定义Mappingconfiguration?
我对自定义映射不熟悉,用默认的映射又做不到,请大侠们写下代码和注释,谢谢 emitmapper 映射 DTO --------------------编程问答-------------------- 跪求各位大神回复啊。。 --------------------编程问答-------------------- 反射
List<Book> Maping(List<BookDTO> source)
{
List<Book> rs=new List<Book> ();
for each(BookDTO b in source)
{
Book k=new Book();
//一种用反射 给k赋值 .getType).GetProps();
//一种直接赋值也行
rs.add (k);
}
return rs;
} --------------------编程问答-------------------- 映射关系太复杂的话,不如直接对其操作赋值,这个EmitMapper没用过,帮不上多少忙,虽然自己写过Emit,但是都是不需要任何配置的,那样才方便使用。 --------------------编程问答-------------------- 反射
List<Book> Maping(List<BookDTO> source)
{
List<Book> rs=new List<Book> ();
for each(BookDTO b in source)
{
Book k=new Book();
//一种用反射 给k赋值 .getType).GetProps();
//一种直接赋值也行
rs.add (k);
}
return rs;
} --------------------编程问答-------------------- 反射怎么用,我不会啊。
在哪里加入上述代码呢?
EmitMapper.ObjectMapper<BookStore,BookStoreDTO> mapper = EmitMapper.ObjectMapperManager.DefaultInstance.
GetMapper<BookStore, BookStoreDTO>();
我构造了一个mapper,怎么为映射器mapper添加mapping这个反射?
本人愚笨,请大侠指明。。 --------------------编程问答--------------------
如果你用EmitMapper,就不能用反射了,说反射的都是不懂的人。
如果你不会映射,就别用EmitMapper了,那个映射其实就是自己构造一个关系函数(委托),让EmitMapper在赋值过程中调用你给的关系函数对特定属性进行赋值操作,如果你不给也可以,那么它就自动根据名称匹配创建这么一个关系函数,而创建过程是通过Emit来实现的,所以才叫EmitMapper。如果用了反射,那简直就是糟蹋了这个框架了。 --------------------编程问答-------------------- Emit,好东西,也是麻烦的东西 --------------------编程问答--------------------
大侠,那emitmapper能不能很好地应用在EF中呢?
我遇到的最大的难题就在于:一个含有子表的实体如何利用emitmapper来映射呢?
还有就是如果子表内还有子表呢?
子表.toList->DTO.list
这个问题困扰了我很久了,我找不到方法来搞,但使用automapper就很简单,而automapper的性能比emitmapper低,所以我试着用emitmapper来替代它。请大侠赐教,谢谢。 --------------------编程问答-------------------- var mapper =
new ObjectMapperManager().GetMapper<BookStore, BookStoreDTO>(
new DefaultMapConfig()
.ConvertUsing<Book, BookDTO>(value => new BookDTO{ title = value.title })
);
BookStoreDTO BookStoreDTOobj= mapper.Map(BookStoreObj);
补充:.NET技术 , C#