如何从现有的ActiveRecord.cs文件中获取数据库模式?

时间:2010-07-14 09:23:07

标签: subsonic

我获得了使用SubSonic ORM的现有项目的源代码。我(有限!)的理解是,SubSonic通过对现有数据库进行逆向工程来生成代码。不幸的是,我没有用于这个项目的数据库。

我上次编译时有ActiveRecord.cs文件。我怎样才能计算出数据库模式,以便重现数据库?

1 个答案:

答案 0 :(得分:1)

这听起来像SubSonic 3.这里有几个地方让我开始基于我查看我的ActiveRecord.cs文件。您可能希望自己创建一个小型数据库,在其上运行SubSonic,并查看在ActiveRecord.cs中生成的内容。

在ActiveRecord.cs文件中,您将为每个表找到一个分部类。 partial类将继承IActiveRecord,可能是表的名称。

在类中,您将找到一个名为“KeyName()”的函数,它将返回表的主键列名。 SubSonic需要为其处理的表生成主键并为其生成代码。

寻找名为“外键”的区域。如果此表具有外键,您将找到与每个外键对应的属性,例如“public IQueryable OtherTableNames”。所以这个表应该有一个名为“OtherTableNameID”的列;检查生成的外键表的部分类是否确定。

在外键区域的正下方,您将找到此表的非外键列的属性。您可以从属性数据类型中猜测列的数据类型(例如,字符串可能是char(x)或varchar(x))。