NewLife.XCode是一个有10多年历史的开源数据中间件,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode。
整个系列教程会大量结合示例代码和运行日志来进行深入分析,蕴含多年开发经验于其中。
开源地址:https://github.com/NewLifeX/X (求star, 620+)
生成实体类
上一章《数据模型》讲到模型文件Model.xml和脚本Build.tt,(nuget安装NewLife.XCode后即可拥有)。
把Build.tt和Model.xml(可改名)放在同一个目录,在Build.tt上右键“运行自定义工具”,“显示所有文件”,即可看到生成的实体类文件。
**如果运行Build.tt出错,可能是因为找不到XCode.dll文件,可以先编译一次项目,让XCode.dll生成到项目输出目录即可
我们来试试以下模型(拷贝到Model.xml里面):
<?xml version="1.0" encoding="utf-8"?> <Tables Version="9.9.6940.24706" NameSpace="NewLife.School.Entity" ConnName="School" BaseClass="Entity" Output=""> <Table Name="Class" TableName="xxx_class" Description="班级" DbType="SqlServer"> <Columns> <Column Name="ID" DataType="Int32" Identity="True" PrimaryKey="True" Description="编号" /> <Column Name="Name" ColumnName="xxx_Nameyyy" DataType="String" Master="True" Description="名称" /> <Column Name="CreateUser" DataType="String" Description="创建者" /> <Column Name="CreateUserID" DataType="Int32" Description="创建者" /> <Column Name="CreateTime" DataType="DateTime" Description="创建时间" /> <Column Name="CreateIP" DataType="String" Description="创建地址" /> <Column Name="UpdateUser" DataType="String" Description="更新者" /> <Column Name="UpdateUserID" DataType="Int32" Description="更新者" /> <Column Name="UpdateTime" DataType="DateTime" Description="更新时间" /> <Column Name="UpdateIP" DataType="String" Description="更新地址" /> <Column Name="Remark" DataType="String" Length="200" Description="备注" /> </Columns> </Table> <Table Name="Student" Description="学生" DbType="SqlServer"> <Columns> <Column Name="ID" DataType="Int32" Identity="True" PrimaryKey="True" Description="编号" /> <Column Name="ClassID" DataType="Int32" Description="班级" /> <Column Name="Name" DataType="String" Master="True" Description="名称" /> <Column Name="Sex" DataType="Int32" Description="性别" Type="XCode.Membership.SexKinds" /> <Column Name="Age" DataType="Int32" Description="年龄" /> <Column Name="Mobile" DataType="String" Description="手机" /> <Column Name="Address" DataType="String" Description="地址" /> <Column Name="CreateUserID" DataType="Int32" Description="创建者" /> <Column Name="CreateTime" DataType="DateTime" Description="创建时间" /> <Column Name="CreateIP" DataType="String" Description="创建地址" /> <Column Name="UpdateUserID" DataType="Int32" Description="更新者" /> <Column Name="UpdateTime" DataType="DateTime" Description="更新时间" /> <Column Name="UpdateIP" DataType="String" Description="更新地址" /> <Column Name="Remark" DataType="String" Length="200" Description="备注" /> </Columns> <Indexes> <Index Columns="ClassID" /> </Indexes> </Table> </Tables>