Chloe.ORM 实体批量生成

最近做的基本上都是做小网站,实在无聊,所以还是决定用这种小项目去踩踩坑,大概看了看,很多必须要用到的框架还是支持的,所以从这个项目开始,打算用.NET CORE 做,首先要解决的就是ORM上的问题。EF先不考虑,以前用了一段时间的EF,实在觉得难受,还是喜欢轻量级的东西。以前一直用DOS.ORM 感觉很顺手,可惜一直没出.NET CORE的版本,尝试多次之后,决定用Chloe.ORM


对于Chloe.ORM,这玩意是没实体生成器的,看了看群上,要么自己写,要么是用动软或其他软件生成,动软这东西实在太老了,试了下有问题,肯定果断放弃这东西了。然后用T4模板试下了,还是有问题,放弃。正当我有点焦灼的时候,突然想到DOS.ORM-TOOL 这东西是开源的,最开始是想稍微修改下源码,支持Chloe.ORM的实体生成就行了,没想到这东西已经完美支持模板生成了。实在开心,于是乎就有下面这么简单的模板去生成整个数据库的实体,这东西很强,简单无BUG,实在是好东西


dos.orm-tool GitHub地址:https://github.com/itdos/Dos.Tool


下载后在Template文件夹下建立一个chloe_mysql.tpl 然后把下面的代码复制进去,保存,在运行exe连接数据库,模板选择chloe_mysql.tpl 即可生成全部实体


后来发现没[NonAutoIncrementAttribute]这个标识好像有问题。。。无语,所以仔细看了看这个工具是可以加[AutoIncrementAttribute]和[NonAutoIncrementAttribute]这两个标识的

using System;
using Chloe.Entity;
namespace @Model.NameSpace
{
    /// <summary>
    /// 实体类@(Model.ClassName)。(属性说明自动提取数据库字段的描述信息)
    /// </summary>
    [TableAttribute("@Model.TableName")]
    [Serializable]
    public partial class @Model.ClassName
    {
        #region Model
@foreach(var item in Model.Columns)
{
		@:private @item.TypeName _@item.ColumnName;
}

@foreach(var item in Model.Columns)
{
		@:/// <summary>
		@:/// @(item.DeText)
		@:/// </summary>
		if(item.IsPK){
		@:[ColumnAttribute(IsPrimaryKey = true)]
		if(Model.IdentityColumn != null&&item.ColumnName==Model.IdentityColumn.ColumnName)
		{
		@:[AutoIncrementAttribute]
		}
		else{
		@:[NonAutoIncrementAttribute]
		}
		}
		@:public @item.TypeName @item.ColumnName
		@:{
			@:get{ return _@item.ColumnName; }
			@:set
			@:{
				@:this._@item.ColumnName = value;
			@:}
		@:}
}
		#endregion
}
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值