考虑一个由 100 多个表组成的数据库(MSSQL 2005),这些表在一定程度上定义了主键。表之间存在“关系”,但是这些不是通过外键约束来强制执行的。
考虑以下我正在处理的典型表格类型的简化示例。User 与 City 和 Province 表之间有明确的关系。但是,它们的关键问题是表中的数据类型和命名约定不一致。
User:
UserRowId [int] PK
Name [varchar(50)]
CityId [smallint]
ProvinceRowId [bigint]
City:
CityRowId [bigint] PK
CityDescription [varchar(100)]
Province:
ProvinceId [int] PK
ProvinceDesc [varchar(50)]
我正在考虑重写使用此数据源的应用程序(在 ASP.net MVC 中),因为它的设计类似于MVC 店面。但是,我正在经历概念验证阶段,这是我遇到的绊脚石之一。
就可以轻松使用的 ORM 选择而言,我有哪些选择,为什么?
我什至应该考虑 ORM 吗?(我问这个的原因是大多数解释和教程都适用于设计相对干净的现有数据库,或者与我相比是新创建的数据库。因此,我很难找到解决这个问题的方法)
有大量现有的 SQL 查询,数据映射器(例如 IBatis.net)是否更合适,因为我们可以轻松地修改它们以使其工作并重用已经进行的投资?
我在 SO 上发现了这个问题,它向我表明可以使用 ORM - 但是我觉得这是一个映射问题?
注意:目前,对象模型没有明确定义,因为它不存在。现有系统几乎用 SQL 完成几乎所有事情,或者由过于复杂和大量查询组成以完成功能。我几乎是一个菜鸟,并且在 ORM 和 MVC 方面的经验为零 - 所以这是一个很棒的学习曲线。