使用CodeSmith的MiniAccess的实体生成模板,可以根据数据库的表结构和表间关系,一次性生成所有数据访问实体类型,生成同时默认的OR映射文件的内容。
MiniEntity.cst包括两个参数
MiniEntity.cst只单一的生成一个表的实体类型,而MiniAccess.cst的功能通过对每张表循环引用MiniEntity.cst,一次就生成多张表的实体类型。另外MiniAccess.cst还生成了OR映射文件的内容和Access类。MiniAccess.cst的属性有:
代码举例如下:
1: <?xml version="1.0"?>
2: <codeSmith xmlns="http://www.codesmithtools.com/schema/csp.xsd">
3: <propertySets>
4: <propertySet output="MyOutputCodeFile.cs" template="..\..\CodeSmithTemplate\MiniAccess.cst">
5: <property name="DeveloperName">MyName</property>
6: <property name="Database">
7: <connectionString>..connection string..
8: </connectionString>
9: <providerType>SchemaExplorer.SqlSchemaProvider,SchemaExplorer.SqlSchemaProvider</providerType>
10: </property>
11: <property name="Namespace">MyDatabase.EntityAccess</property>
12: <property name="Provider"></property>
13: <property name="AccessClass"></property>
14: <property name="Tables"></property>
15: </propertySet>
16: </propertySets>
17: </codeSmith>
(已修改)2008-10-17:无主键表无法生成实体类。应该为:去掉根据主键的操作Delete和Update和Fetch,但是保留根据唯一索引的FetchBy<索引名称>和DeleteBy<索引名称>。注意:根据唯一索引的Update目前还没有实现,难点是Old值的保留,该功能似乎用处不大,先不考虑。
(尚未修改)当一个主键对应一个表中的两个外键时出错(即存在两个一对多关系)。