最佳实践
根据大石头的视频整理,此文目的是对新手在开发一个项目时从零开始使用XCode做出指引,不深入探讨细节。
实践环境:
在新建项目后,通过NuGet获取XCode最新程序包安装(省略NuGet安装XCode步骤)
1、数据库设计
- 在安装好XCode后,项目中会生成一个“Build.tt”和“Model.xml”的文件,数据库的设计可以在中展开,如:
<?xml version="1.0" encoding="utf-8"?>
<Tables Version="9.9.6881.41313" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:schemaLocation="http://www.newlifex.com https://raw.githubusercontent.com/NewLifeX/X/master/XCode/ModelSchema.xsd" ConnName="default" Output="" BaseClass="Entity" NameSpace="" xmlns="http://www.newlifex.com/ModelSchema.xsd">
<Table Name="Student" Description="学生">
<Columns>
<Column Name="ID" DataType="Int32" Identity="True" PrimaryKey="True" Description="编号" />
<Column Name="Name" DataType="String" Master="True" Nullable="False" Description="名称" />
<Column Name="Sex" DataType="Int32" Description="性别" />
<Column Name="Age" DataType="Int32" Description="年龄" />
<Column Name="Enable" DataType="Boolean" Description="启用" />
<Column Name="Remark" DataType="String" Length="500" Description="说明" />
<Column Name="CreateUserID" DataType="Int32" Description="创建用户" />
<Column Name="CreateIP" DataType="String" Description="创建地址" />
<Column Name="CreateTime" DataType="DateTime" Description="创建时间" />
<Column Name="UpdateUserID" DataType="Int32" Description="更新用户" />
<Column Name="UpdateIP" DataType="String" Description="更新地址" />
<Column Name="UpdateTime" DataType="DateTime" Description="更新时间" />
</Columns>
<Indexes>
<Index Columns="Name" Unique="True" />
</Indexes>
</Table>
</Tables>
如果你对于上面的XML的属性等不了解,可以通过XCode的码神工具,把数据库的表生成XML后来学习。
在通过XML来设计数据表时数据类型尽量在Int32、String、DateTime、Boolean
中选择,以增加不同数据库的兼容性。 注意XML中的命名空间等属性的设置,以契合项目。
2、实体类和数据库操作类的生成
- 右击“Build.tt”文件,在出来的菜单中选择“运行自定义工具”,跳出警告点确定,完成生成。
- 按上面的XML生成完成后,点击解决方案的显示所有文件,把生成的文件加载到项目中来。可以看到有“学生.Biz.cs”和“学生.cs”两个类,前一个是数据库操作类,后一个是实体信息类。
- 在项目中需要查询数据的方法等在“学生.Biz.cs”中编写,常见查询参考。
- 如果使用XCode的SQL条件拼接方式,即“
WhereExpression
”的方式,都会内部处理SQL注入的问题,所以可以放心使用。
3、数据表结构变更
- 直接修改“Model.xml”文件中的相关表的XML节点及属性,再通过“Build.tt”重新生成。
重新生成时不会覆盖“学生.Biz.cs”,仅会覆盖“学生.cs”中的内容。
- 运行你的项目,这个是XCode会根据你的配置来更新数据库表结构,如果无法更新,会有日志中给出更新SQL,此时需要你手工更新数据表。配置根据你项目中的
Config
文件夹中的XCode.config
文件中的*Migration
节点来决定:Off 关闭;ReadOnly 只读不执行;On 打开,仅新建;Full 完全,修改删除*
日志文件一般在你的项目中的LOG目录下,网站项目会在你的网站项目所在文件夹的上一级目录下的LOG文件夹中。
->End by 景裔<-