目录

一、前言

楼主从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版(一)代码生成的更多相关文章

  1. NewLife.XCode 上手指南2018版(二)增

    目录 NewLife.XCode 上手指南2018版(一)代码生成 NewLife.XCode 上手指南2018版(二)增 NewLife.XCode 上手指南2018版(三)查 NewLife.XC ...

  2. NewLife.XCode 上手指南

    想了解什么是XCode 在这里我不对XCode做过多介绍,XCode曾经是一个轻量级ORM组件,现在是一个重量级数据映射框架,支持实体对象数据到不同媒体的数据映射,提供面向对象的方式操作数据库,解决9 ...

  3. [NewLife.XCode]角色权限

    NewLife.XCode是一个有10多年历史的开源数据中间件,支持nfx/netcore,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示例代码和 ...

  4. [NewLife.XCode]对象字典缓存(百万军中取敌首级)

    NewLife.XCode是一个有10多年历史的开源数据中间件,支持nfx/netcore,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示例代码和 ...

  5. [NewLife.XCode]高级增删改

    NewLife.XCode是一个有10多年历史的开源数据中间件,支持nfx/netstandard,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示 ...

  6. [NewLife.XCode]实体列表缓存(最土的方法实现百万级性能)

    NewLife.XCode是一个有10多年历史的开源数据中间件,支持nfx/netcore,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示例代码和 ...

  7. [NewLife.XCode]增删改查入门

    NewLife.XCode是一个有10多年历史的开源数据中间件,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示例代码和运行日志来进行深入分析,蕴含 ...

  8. [NewLife.XCode]数据模型文件

    NewLife.XCode是一个有10多年历史的开源数据中间件,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示例代码和运行日志来进行深入分析,蕴含 ...

  9. [NewLife.XCode]实体类详解

    NewLife.XCode是一个有10多年历史的开源数据中间件,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示例代码和运行日志来进行深入分析,蕴含 ...

随机推荐

  1. JDBC (五)

    1 使用dbutils进行一对多.多对多的开发 1.1 准备 mysql驱动的pom.xml <!-- https://mvnrepository.com/artifact/mysql/mysq ...

  2. pat 1014 1017 排队类问题

    1.用循环模拟时间 2.采用结构体模拟客户和窗口对象 3.合理处理边界,去除无用信息 4.使用自带排序sort()结合自定义功能函数compare()实现排序

  3. iOS-状态栏字体颜色【白色】【Xcode9.1】

    Xcode9之前 设置状态栏颜色首先在info.plist文件中,加入UIViewControllerBasedStatusBarAppearance = false: <key>UIVi ...

  4. 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 ...

  5. HDU [P1151] Air Raid

    二分图匹配求DAG图上的最小路径覆盖 应用了拆点的思想,将DAG图上的每一个点拆成二分图的x集合与y集合,对于一条有向边u->v来说,我们在ux与vy之间连一条边,然后求二分图的最大匹配 DAG ...

  6. 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 ...

  7. BZOJ 2683: 简单题 [CDQ分治]

    同上题 那你为什么又发一个? 因为我用另一种写法又写了一遍... 不用排序,$CDQ$分治的时候归并排序 快了1000ms... #include <iostream> #include ...

  8. Azure ARM (20) 将非托管磁盘虚拟机(Unmanage Disk),迁移成托管磁盘虚拟机(Manage Disk)

    <Windows Azure Platform 系列文章目录> PowerShell我已经提交到GitHub: https://github.com/leizhang1984/AzureC ...

  9. 链表回文判断(C++)

    题目描述: 对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构. 给定一个链表的头指针A,请返回一个bool值,代表其是否为回文结构.保证链表长度小于等 ...

  10. yii2 源码分析Event类分析 (三)

    转载请注明链接:http://www.cnblogs.com/liuwanqiu/p/6739880.html Event是所有事件的基类,它继承Object类 Event类上面的注释的大致意思: * ...