NewLife.XCode 上手指南2018版(一)代码生成
目录
- NewLife.XCode 上手指南2018版(一)代码生成
- NewLife.XCode 上手指南2018版(二)增
- NewLife.XCode 上手指南2018版(三)查
- NewLife.XCode 上手指南2018版(四)删
- NewLife.XCode 上手指南2018版(五)改
一、前言
楼主从2013年开始使用xcode到现在已经5个年过去了,只要公司项目用C#的orm肯定就是xcode,没有其他选项,因为他使用起来真的太方便太灵活了,想要什么都可以做到。这个系列为什么2018年又要写一遍呢,因为公司来了个小伙子,白纸一张,什么都不懂,自己看看2013年的上手指南真的看不下去了,实在不适合初学者,所以才想花点时间,重新写一个指南。这次时间紧任务多,所以除了前言不会再有废话,直奔主题。
二、阅读本指南前置条件
了解基础的C#语法
了解数据库基本知识
三、本指南达到的目的
快速上手XCode,可以利用XCode对数据库进行增删改查
四、XCode的工具下载
http://x.newlifex.com/XCoder_Install.exe
exe实际上是一个rar的自动解压脚本,下载运行后,会自动在C:\X\Coder\目录下生成这些文件。

五、新建项目和DLL的引用
0.新建一个项目,项目名称随意取,Vs2013新建的项目默认是.net4.5的版本。
1.在引用的地方右键,管理NuGet程序包

2. 在右上角搜索框内输入newlife,找到NewLife.XCode,点击安装

3.安装完成之后,会在项目文件里看到如下文件

3.1 生成实体类.tt 是个脚本文件,用于生成实体类cs文件,这里我们用不到,可以删除他,如果像知道怎么用这个tt文件可以看这个http://www.cnblogs.com/m5v8/p/8509810.html
3.2 NewLife.Core是XCode使用的基本库,所以必须要有
3.3 XCode是我们今天的主角,宇宙无敌超级好用的ORM
六、新建一个数据库
此处使用的MSSQL2005
新建一个数据库叫XCodeTest
然后执行如下SQL脚本,新建一个MyUser的表
USE [XCodeTest]
GO
/****** 对象: Table [dbo].[MyUser] 脚本日期: 03/05/2018 16:46:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[MyUser](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[Age] [int] NULL,
[Money] [decimal](18, 2) NULL,
[vTime] [datetime] NULL,
CONSTRAINT [PK_MyUser] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
七、生成Domain
1. 打开C:\X\XCoder\XCoder.exe

2. XCoder在你没有做任何配置的情况下,自动会识别本机的mssql,然后自动识别到所有数据库,所以这里我们直接选择刚才的xcodeTest数据库就可以了。至于其他的链接字段怎么修改和配置,可以自行查看XCoder.exe.config里的ConnectionString

3. 选择刚才我们新建的表,选择模板实体数据,命名空间,连接名根据项目需求进行一些修改就可以了如下图所示。(实体基类不要去修改)

4. 再重复第三步生成实体业务,实体业务里面包含了基本的查询,基本的扩展属性,这些都是根据数据库的索引和命名规则自动生成的,真是太方便了
5. 打开目录,把我们刚才生成的cs文件copy到项目中去,新建一个Domain文件夹,然后把2个文件复制进来就可以了,vs真是棒棒的。

5.1 MyUser.cs 文件就是基础的数据实体对象,里面包含了表里所有的字段值
5.2 MyUser.Biz.cs文件里面包含了对这个实体对象进行的一些基本操作,包括一些扩展查询,这里的查询是XCode根据表索引来自行生成的,如果没有索引就不会有。
而扩展属性呢,是根据表的名字和表的字段关联关系自动生成的。这个我这里就不再展开了。
结尾
到目前为止,我们完成了项目的新建、dll的引用、XCode代码生成器的使用,生成了Domain。 下一节我们介绍如何利用XCode优雅的写出各种查询。
NewLife.XCode 上手指南2018版(一)代码生成的更多相关文章
- NewLife.XCode 上手指南2018版(二)增
目录 NewLife.XCode 上手指南2018版(一)代码生成 NewLife.XCode 上手指南2018版(二)增 NewLife.XCode 上手指南2018版(三)查 NewLife.XC ...
- NewLife.XCode 上手指南
想了解什么是XCode 在这里我不对XCode做过多介绍,XCode曾经是一个轻量级ORM组件,现在是一个重量级数据映射框架,支持实体对象数据到不同媒体的数据映射,提供面向对象的方式操作数据库,解决9 ...
- [NewLife.XCode]角色权限
NewLife.XCode是一个有10多年历史的开源数据中间件,支持nfx/netcore,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示例代码和 ...
- [NewLife.XCode]对象字典缓存(百万军中取敌首级)
NewLife.XCode是一个有10多年历史的开源数据中间件,支持nfx/netcore,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示例代码和 ...
- [NewLife.XCode]高级增删改
NewLife.XCode是一个有10多年历史的开源数据中间件,支持nfx/netstandard,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示 ...
- [NewLife.XCode]实体列表缓存(最土的方法实现百万级性能)
NewLife.XCode是一个有10多年历史的开源数据中间件,支持nfx/netcore,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示例代码和 ...
- [NewLife.XCode]增删改查入门
NewLife.XCode是一个有10多年历史的开源数据中间件,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示例代码和运行日志来进行深入分析,蕴含 ...
- [NewLife.XCode]数据模型文件
NewLife.XCode是一个有10多年历史的开源数据中间件,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示例代码和运行日志来进行深入分析,蕴含 ...
- [NewLife.XCode]实体类详解
NewLife.XCode是一个有10多年历史的开源数据中间件,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示例代码和运行日志来进行深入分析,蕴含 ...
随机推荐
- JDBC (五)
1 使用dbutils进行一对多.多对多的开发 1.1 准备 mysql驱动的pom.xml <!-- https://mvnrepository.com/artifact/mysql/mysq ...
- pat 1014 1017 排队类问题
1.用循环模拟时间 2.采用结构体模拟客户和窗口对象 3.合理处理边界,去除无用信息 4.使用自带排序sort()结合自定义功能函数compare()实现排序
- iOS-状态栏字体颜色【白色】【Xcode9.1】
Xcode9之前 设置状态栏颜色首先在info.plist文件中,加入UIViewControllerBasedStatusBarAppearance = false: <key>UIVi ...
- root cause org.apache.ibatis.ognl.OgnlException: source is null for getProperty(null, "XXX")
在执行一个查询语句的时候,mybatis报错:root cause org.apache.ibatis.ognl.OgnlException: source is null for getProper ...
- HDU [P1151] Air Raid
二分图匹配求DAG图上的最小路径覆盖 应用了拆点的思想,将DAG图上的每一个点拆成二分图的x集合与y集合,对于一条有向边u->v来说,我们在ux与vy之间连一条边,然后求二分图的最大匹配 DAG ...
- 51NOD 1237 最大公约数之和 V3 [杜教筛]
1237 最大公约数之和 V3 题意:求\(\sum_{i=1}^n\sum_{j=1}^n(i,j)\) 令\(A(n)=\sum_{i=1}^n(n,i) = \sum_{d\mid n}d \c ...
- BZOJ 2683: 简单题 [CDQ分治]
同上题 那你为什么又发一个? 因为我用另一种写法又写了一遍... 不用排序,$CDQ$分治的时候归并排序 快了1000ms... #include <iostream> #include ...
- Azure ARM (20) 将非托管磁盘虚拟机(Unmanage Disk),迁移成托管磁盘虚拟机(Manage Disk)
<Windows Azure Platform 系列文章目录> PowerShell我已经提交到GitHub: https://github.com/leizhang1984/AzureC ...
- 链表回文判断(C++)
题目描述: 对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构. 给定一个链表的头指针A,请返回一个bool值,代表其是否为回文结构.保证链表长度小于等 ...
- yii2 源码分析Event类分析 (三)
转载请注明链接:http://www.cnblogs.com/liuwanqiu/p/6739880.html Event是所有事件的基类,它继承Object类 Event类上面的注释的大致意思: * ...