0

经过深思熟虑,我决定使用 Linq To SQL 作为我的项目的 DAL,但将业务对象保留为 POCO 对象。

这将提供一些灵活性,因为数据库模式很旧并且有一些无法解决的问题,因为向后兼容。

我正在考虑制作一些方法来使用反射将 LINQ 对象检索或完成到 POCO 对象中。此方法必须尝试使用​​相同名称填充所有属性。

问题:
你知道做映射的更好方法吗?

澄清:
1.我不想使用NHibernate,实体等
。2.我知道反射很慢

4

2 回答 2

2

您可能想研究一下 Jimmy Bogard 的AutoMapper之类的东西,它几乎可以满足您的要求。如果您想看一下,他已将其加载到CodePlexGoogleCode上。

于 2009-02-11T05:50:30.503 回答
0

创建一个静态类“复印机”。该类的静态构造函数可以反映在 T 和 U 上,并使用 DynamicMethod 发出代码(循环遍历每个属性,查看哪些排列)。这样反射价格就支付一次。从那里开始,它将是一个普通的委托调用,应该很快。

您可能会遇到的问题是,当事情不完全匹配时,简单地复制同名字段会变得有些限制。您可能会考虑使用反射并生成为您进行转换的代码,然后手动修复它们。

于 2009-01-27T16:36:22.730 回答