【问题标题】:Mitigating double mapping model overhead减轻双重映射模型开销
【发布时间】:2010-10-03 19:04:45
【问题描述】:

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

这将提供一些灵活性,因为数据库架构很旧并且由于向后兼容性而存在一些无法解决的问题。

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

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

澄清:
1.我不想用NHibernate、Entities等
2. 我知道反射很慢

【问题讨论】:

  • 所以你决定不使用 NH 来加倍工作,对吗? :)。如果你在一个紧密的循环中使用它,反射会很慢,否则你不会感觉到它。
  • 也许吧,但我想让事情变得简单(或者我让事情复杂化了?啊)

标签: .net vb.net linq-to-sql poco


【解决方案1】:

您可能想研究 Jimmy Bogard 的 AutoMapper 之类的东西,它与您所说的差不多。他已经在CodePlexGoogleCode 上加载了它,如果你想看看的话。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 哦,尖括号被删除了。那应该是“T,U”的复印机。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-12
    • 1970-01-01
    • 2022-01-13
    • 2012-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多