将类属性映射到表.NET中的通用列

时间:2009-06-29 21:37:46

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

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

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

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

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

注意:只允许通过存储过程插入数据库,更新和删除。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

快乐的编码。