元数据的定义已经有了,下面要考虑的问题是从哪里生成元数据。硬编码来实现当然也可以,但这种体力劳动显然不是大多数人所希望的。使用配置文件是一个可行的方法,而在.Net里用Attribute更方便一些,正好适合要求。
根据ORM的元数据定义对应的Attribute:TableAttribute,ColumnAttribute,TableJoinAttribute。其中ColumnDefineMode是为了偷懒,因为很多情况下属性本身就已经包含了对应了元数据信息,就不用每个属性都要加上ColumnAttribute了。
然后是提供一个根据Attribute生成我们需要的元数据的TableInfoProvider,实现GetTableInfo方法:AttibuteTableInfoProvider。目前我只实现了由Attribute生成元数据的方式,通过配置文件或者其他方式的没有实现,因为.Net下还是Attribute最方便。如果有必要的话自己实现通过配置文件也可以。