【问题标题】:Mapping class properties to generic columns in table .NET将类属性映射到表 .NET 中的通用列
【发布时间】:2010-11-06 20:07:50
【问题描述】:

我有一个 SQL Server 表,它具有通用名称,如 Text1、Text2.. 等。该表是这样设计的,因为相同的结构用于不同的项目。

我在 .NET 中有一个具有属性的类。假设 Customer 类有一个名为 FirstName 的属性。

如何在应用程序中只执行一次从 FirstName 到 Text1 的映射(中心位置),以便在创建不同的 DAL 方法时不必记住和硬编码整个应用程序的映射?

例如,我希望应用知道我何时要更新,插入 FirstName,DAL 自动使用 Text1。基本上我不必记住哪个属性去哪个列。这个想法是开发人员不会以错误的方式映射属性/列。它总是一致的。

注意:数据库插入、更新和删除只能通过存储过程进行。

【问题讨论】:

    标签: sql-server data-access-layer data-mapping


    【解决方案1】:

    如果您不能使用 NHibernate(我强烈建议您这样做)或不能使用 LINQ to SQL(也许您的代码库是 .NET 2.0)那么...

    您可能想要实现某种形式的工厂模式。在您的工厂对象中,您可能希望返回一个强数据集,然后使用对象到对象映射器在您的数据集和 DTO/View/Entity 对象之间进行转换。来自 Los Techies 的 Jimmy 创建了一个很棒的开源对象到对象映射器,您可能会发现它非常有用:AutoMapper

    编码愉快。

    【讨论】:

      【解决方案2】:

      查看那里的各种 ORM。对于映射遗留数据库,NHibernate 是完美的。

      【讨论】:

      • 我不能使用第三方 ORM。我更喜欢在 .NET 或 LINQ 中进行。
      • 我不明白这种心态,就像在说“我不能用螺丝刀拧螺丝”。哦,我猜……
      • 一些公司不允许第三方组件用于简单的解决方案。您说要使用 powertoolbox 来做一些简单的事情。加入 nHibernate 这是一个主要的 ORM 工具,这样我就必须少输入,这不是一个好主意。这也意味着团队中的每个开发人员都必须学习它。我正在寻找一个可以在不到一个小时内编写代码的解决方案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-13
      • 2020-09-14
      • 1970-01-01
      相关资源
      最近更新 更多