从可怕的数据源生成干净的业务对象类

时间:2009-09-01 01:45:26

标签: c# .net entity-relationship

我开始为一层业务/实体类创建一个空白的平板,但是有一个现有的数据源。通常情况下,这将是蛋糕,启动实体框架,将其指向数据库,并将其称为一天,但暂时,我需要从第三方供应商数据源获取实际数据......

  1. 只能从通用ODBC提供程序(而不是SQL)
  2. 进行访问
  3. 语法,命名非常糟糕,在某些情况下,到处都是重复数据
  4. 有超过100个表,当合并时,将在1,000列/数据属性附近
  5. 我只需要来自此DB的只读,因此我不需要支持更新/插入/删除,只需要在每次应用程序运行时将“脏”数据提取到干净的实体中。

    我想尽可能地将数据库与我漂亮,干净,命名良好的实体类隔离开来。

    有一个好方法:

    1. 从数据库表生成初始实体类? (这样我只是重命名和修复类属性来清理它而不是从头开始。)
    2. 将数据从数据库映射到我的漂亮,干净的类而不编写1000个属性集?
    3. 编辑:这里的主要目标不是提出伪ORM,因为它根据已经存在的内容生成尽可能多的现有代码,然后进行调整根据需要,消除了大量手工劳动密集型课程编写任务。

2 个答案:

答案 0 :(得分:3)

我喜欢避免从数据库模式中自动生成类,只是为了更好地控制实体的结构 - 对于数据库结构而言,这对于类结构并不总是有意义。对于第三方或遗留系统,我们为业务对象使用适配器模式 - 将旧的或结构不良的格式转换为数据库,平面文件,其他组件等,使其更适合。

话虽这么说,您可以创建视图或存储过程来表示更适合您需求的庄园中的数据,而不是数据库的当前结构。这假设您可以触摸数据库。

答案 1 :(得分:2)

转储数据库。我的意思是,重新设计架构,迁移数据,你应该很好。