代码之家  ›  专栏  ›  技术社区  ›  Eduardo Molteni

减少双映射模型开销

  •  0
  • Eduardo Molteni  · 技术社区  · 16 年前

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

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

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

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

    澄清:
    1。我不想使用NHibernate、实体等。
    2。我知道思考很慢

    2 回复  |  直到 16 年前
        1
  •  2
  •   Eric King    16 年前

    你可能想看看像吉米·博加德的 AutoMapper 这对你说的很有帮助。他把它装上了 CodePlex GoogleCode ,如果你想看看。

        2
  •  0
  •   MichaelGG    16 年前

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

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