精华内容
下载资源
问答
  • dos.orm 实体生成

    2018-12-18 15:03:20
    用于生成对应的dos.orm 底层框架实体工具,实用sql server 数据库mysql数据库等
  • 主要介绍了Python利用sqlacodegen自动生成ORM实体类,结合实例形式分析了Python sqlacodegen安装技巧ORM实体类相关实现技巧,需要的朋友可以参考下
  • Chloe.ORM 实体批量生成

    千次阅读 2017-08-14 15:53:42
    最近做的基本上都是做小网站,实在无聊,所以还是决定用这种小项目去踩踩坑,大概看了看,很多必须要用到的框架还是支持的,所以从这个项目开始,打算用.NET CORE 做,首先要解决的就是ORM上的问题。EF先不考虑,...

    最近做的基本上都是做小网站,实在无聊,所以还是决定用这种小项目去踩踩坑,大概看了看,很多必须要用到的框架还是支持的,所以从这个项目开始,打算用.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
    }
    }



    展开全文
  • Dos.ORM代码生成

    2017-04-21 16:06:56
    Dos.ORM 代码生成器 实体生成
  • C# ORM程序及实体生成工具,支持MySQL,SQLite,SQLServer,Oracle,Access数据库,实体生成工具支持MySQL,SQLite
  • 下载后解压,找到文件WHC.CodeGenerator.UI然后双击配置数据库连接即可
  • 程序全部是自己实现的,原理是对sql语句的包装,...实体生成工具下载:实体生成工具下载 下面对程序进行介绍。 首先添加引用:DB.DAL.dll,MySql.Data.dll,System.Data.SQLite.dll 建立数据源: <s...

    程序全部是自己实现的,原理是对sql语句的包装,现在支持mysql和sqlite,可以扩展到现在主流的数据库。

     

    程序下载地址:C# 自已实现ORM程序下载

     

    实体生成工具下载:实体生成工具下载

     

    下面对程序进行介绍。

     

    首先添加引用:DB.DAL.dll,MySql.Data.dll,System.Data.SQLite.dll

     

    建立数据源:

     

    <span style="font-size:14px;">public class dbResource
        {
            public static string TestDataConnStr = ConfigurationManager.ConnectionStrings["TestDataConnStr"].ConnectionString;
    
            /// <summary>
            /// Test数据库数据源
            /// </summary>
            public static IDataSourceType TestDataDBSource
            {
                get
                {
                    IDataSourceType ds = IDataSourceTypeFactory.Create(DataSourceType.MySQL, TestDataConnStr);
                    return ds;
                }
            }
        }</span>


    在配置文件中添加如下连接字符串:

     

     

    <span style="font-size:14px;"><connectionStrings>
        <add name="TestDataConnStr" connectionString="server=localhost;uid=root;pwd=123456;Database=Test;Connection Timeout=120;" />
      </connectionStrings></span>

     

     

     

     

     

    使用生成工具生成实体类

     

     

    使用图例:

     

    选择生成的语言及数据库
     

     

    生成:

     

     

    其中生成的实体类例子如下:

     

    <span style="font-size:14px;">[DataContract]
        [Table(TableName = "user")]
        public class drUser
        {
            [DataMember]
            [Column(IsPrimary = true, IsIdentity = true)]
            public int Id { get; set; }
            [DataMember]
            public string Name { get; set; }
    
            public drUser()
            {
            }
        }</span>

     

     

     

     

    以下是对数据库增删改查的使用:

     

               //查询出所有的用户信息
                List<drUser> list = ORMHelper.GetListBySQL<drUser>("select * from user", dbResource.TestDataDBSource);
    
                //根据sql语句查询出用户
                try
                {
                    drUser user1 = ORMHelper.GetModelBySQL<drUser>("select * from user where id = 2", dbResource.TestDataDBSource);
                    MessageBox.Show(user1.Name);
                }
                catch
                {
                    MessageBox.Show("this is a exception");
                }
    
                //通过SQL语句修改个人的信息
                ORMHelper.UpdateBySQL("update user set Name='abc' where id=2", dbResource.TestDataDBSource);
    
                drUser user = new drUser();
                user.Id = 1;
                user.Name = "daaa";
                //根据实体对象更新一条数据
                ORMHelper.UpdateModelById<drUser>(user, dbResource.TestDataDBSource);
    
                //根据id删除用户
                drUser user2 = ORMHelper.GetModelBySQL<drUser>("select * from user where id = 2", dbResource.TestDataDBSource);
                ORMHelper.DeleteModelById<drUser>(user2, dbResource.TestDataDBSource);
    
                //根据where条件删除用户
                //ORMHelper.DeleteModel<drUser>("Id > 3", dbResource.TestDataDBSource);
    
                List<drUser> alist = new List<drUser>();
                for (int i = 4; i < 10; i++) {
                    drUser duser = new drUser();
                    duser.Id = i;
                    duser.Name = "aaa"+i;
                    alist.Add(duser);
                     
                }
    
                //添加一组数据  批量插入数据库
                ORMHelper.InsertList<drUser>(alist,dbResource.TestDataDBSource);
               
                //根据model实体添加一条记录
                drUser user3 = new drUser();
                user3.Name = "dafa";
                int j = 18;
                ORMHelper.InsertModel<drUser>(user3, out j, dbResource.TestDataDBSource, false);

     

     

     

    http://www.qcdest.com/bbs/IT/20151113616.html

     

     

     

     

    展开全文
  • 1、安装 pip install sqlacodegen 2、使用sqlacodegen生成案列 sqlacodegen --tables test --outfile ./Found.py mssql+pyodbc://sa:Nuctech_50@dsn_name

    1、安装

    pip install sqlacodegen

    2、使用sqlacodegen生成案列

    sqlacodegen --tables test --outfile ./Found.py mssql+pyodbc://sa:Nuctech_50@dsn_name
     

     

    展开全文
  • orm实体映射

    2011-04-21 01:51:00
    作者:佚名 时间:2007-06-26 关于ORM实体映射的感想 (Object /Relational Mapper )2005-05-29 njbaige/白鸽 于苏州 What ORM? Object /Relational Mapper Why ORM 一般的数据库访问是建立于传统...
    作者:佚名 时间: 2007-06-26
     关于ORM实体映射的感想 (Object /Relational Mapper )2005-05-29  njbaige/白鸽  于苏州
    What  ORM?
    Object /Relational Mapper Why ORM
    一般的数据库访问是建立于传统的数据库访问模型的基础之上,
    即是Connection,Command等对象,通过SQL语句与数据库交互,并返回结果
    现在.NET下面的数据库访问框架已经到了ADO.NET 时代,ADO.NET 的访问方式
    详见MSDN的相关文档,这不是本文讨论的重点。但是要说明的是,在.NET 环境
    下的数据访问,都得要和ADO.NET打交道,那个是最底层得东西,我们今天谈的
    数据库映射框架底层也是基于ADO.NET的访问模式,只是他们进行了很有效的封装
    是得对数据库的操作从传统的SQL模式,转换为基于对象的模式。
    使业务逻辑与数据层分离,减少之间的藕合性,让系统开发对数据库透明目前在网络上大家可以找到好几种持久层,其实各个持久层的思想都是相同的,只是在实现的方式上,
    还有一些细节功能上有差异,每个持久层都有独特之处或是不足之处How ORM 实体映射:将数据库中的实体(一般是一张表)映射为类,对数据库的操作就
    直接转换为对这些实体的操作:包括新,增,删,改等。采用实体的操作,会使我们对数据
    库访问时,更方便,减少很多不必要的代码
    关系映射:数据库中多个表之间会有相互的关系,怎样把这些关系也反映到映射好的类中
    这就是关系映射,不过相比实体映射,关系映射实现起来更难,这也是评估不同ORM好坏的
    一个重要因素
    高级查询:在数据库操作中,用得最多的是数据获取(Retrieve)。查询条件也是很多样,会
    有关联查询的情况,获取的结果也是要定制的,而不是简单的每个表的所有字段。
    这点也是ORM实现最关键的地方,各自实现的方式不同,而且有的用起来也很麻烦,不友好。
    感觉还不如直接采用SQL语句来的方便。这点NHibernate继承了Hibernate的长处,采用HQL
    查询语言,功能最为强大。其他的ORM 就不是很方便了。个人觉得还有必要保留SQL语句接
    口,返回Table对象也是有不错的。事务处理:在数据可靠性要求很高的时候,需要引入事务。由于ADO.NET 中对事务的支持
    很好,所以在ORM实现起来也是很棒的,一般的框架都支持这样的事务。实体类和操作类的生成: ORM说到底就是帮我们生成了一个功能强大的数据库访问类,
    里面包括实体对象类,实体操作类等,实现了这样的思想,在代码生成上也需要友好,方便
    才能为大众所用。所以一个优秀的ORM框架需要搭配一个好的代码生成工具。目前一部分框架都有的,
    支持直接同数据库连接,选择要生成的数据表,直接生成CS文件,编译成DLL文件,直接导入到工程中就能用啦,
    是不是很酷~(不过有的ORM框架需要一些配置文件,也有生成的哦)数据访问实现方式:对实体对象的获取,更新保存至数据库,在ORM的底层都需要通过
    连接来实现(不管是SQL连接还是OLEDB 连接,还是ORACLE连接 ),他们实现的方式也有不同
    这决定了我们在代码中的操作方式也不同。一种是通过一个Manage类来实现,就像NHibernate、ORM.NET等,
    这样的有点是连接操作效率更高,公用一个连接操作实体,缺点是我们使用起来不是很方便,
    不是完全符合对象映射的构想,每次操作都得取找那个Manage,麻烦;还有一种是直接放到实体类中,
    也就是每一个实体类中都封装好了Save,del等数据访问方法,要操作直接调用,就不要再去麻烦第三者了~目前用过几个ORM框架,下面是主要操作方式的学习笔记:
    一 . ORM.NET   下载URL:http://www.olero.com/ormweb/index.aspx
    一个国外的ORM框架,主要是生成代码工具很酷,才试用的。帮助文件也全,不过为E文的。
    启动工具,连接至SQL Server(好像它只支持SQL Server,用的是System.Data.SqlClient )
    ,显示出数据库中的每一张表和相应的关系,选择要生成的实体对象,配置文件路径和CS类名之后,
    代码就出来了。就一个DLL(外带一个连接配置文件,也可以不用,在代码里面赋值就OK)去看了里面的具体内容,
    实体映射,事务处理是没问题的,在数据的复杂查询上,采用了自定义的一个查询条件类,
    支持很复杂的查询条件(不过感觉开始用起来比较难上手)二  SmartPersistenceLayer  下载URL;http://www.cnblogs.com/tintown/category/12787.html 
    附很详细的帮助文档和实例简称SPL,最新版本3.1 , 听棠大哥的作品,也是目前国产最棒的ORM映射框架,以郭先尧的Xxmm.Net为基础做的。
    (不是帮他打广告,而是里面的功能确实很Cool,不过也有不是很完美的地方-感觉)
    支持SQL Server(System.Data.SqlClient)、Access(System.Data.OleDb)、Oracle(System.Data.OracleClient)、
    Informix (ODBC连接方式)
      提供“并发处理”、“异构数据库事务处理”、“多帐套”、“实体克隆”、“Top功能”等解决方案。
    有代码生成工具 SmartRobot配置文件:是采用Config/DatabaseMap.xml ,设置数据库的连接参数
    O/R Mapping 采用Config/ClassMap.xml ,设置数据库中表字段和实体类之间的对应关系基本的实体操作 :
    实体类继承于EntityObject,具父类为SPL中的一个public abstract类,只要具体的实体类继承后,
    实体类就拥有了Save(),Retrieve(),Delete()的实体操作功能,无需借用Manage类来实现如:
    StudentEntity student=new StudentEntity();  //实体化一个学生对象 //以下进行属性赋值
    //student.Id=1;                        //此为自动增长,SPL会自动获取 student.No=” 200401”;
    student.Name=”张三”;
    student.Birthday=DateTime.Parse(“1979-01 -22”);
    student.Grade=2;
    student.Score=580;
        student.Save();是不是不用串SQL语句了?Criteria(标准)操作:对复杂条件的,返回值为实体对象集合的操作
    采用几个Criteria(标准)对象实现RetrieveCriteria(获取标准)
    UpdateCriteria (更新标准)
    DeleteCriteria(删除标准)RetrieveCriteria rc=new RetrieveCriteria(typeof(StudentEntity)); //实例化        Condition c=rc.GetNewCondition();  //实例化一个条件        c.AddEqualTo(StudentEntity.__GRADE,2);   //二年级条件        c.AddMatchPrefix(StudentEntity.__Name,’刘’); //匹配’刘’字开头        c.OrderBy(StudentEntity.__NO);             //按学号排        DataTable dt=rc.AsDataTable() ;              //以DataTable方式返回
    EntityContainer ec=rc.AsEntityContainer();   //以实体集合的形式返回,然后在集合中操作Entity。
    有点类似RowCollectionrc.AsEntity();  //返回实体集合中的第一个对象rc.Top=20;  可以返回前20条记录哦但是在复杂的表间连接,嵌套查询做得不够,听棠大哥解释的是采用数据库中的视图来完成。
    所以我现在对于很复杂的查询,还是采用SQL传递,返回TABLE的方式,这点有待改进。
    不过也是所有ORM要面对的难题哦~三  NHibernate  下载URL:http://nhibernate.sourceforge.net/
    国外的一个ORM映射框架。继承了JAVA平台Hibernate的血统,不过功能
    有待完善,但应该算是开源的业内最权威的ORM框架了(不知道是不是沾了Hibernate的光~)操作非常全面,规范。开发的过程 1.新建一个将要持久化.Net对象的表2.构建一个需要被持久化的.Net类3.构建一个可以让NHibernate知道如何持久化对象属性的映射文件4.构建一个让NHibernate知道如何连接数据库的配置文件]5.使用NHibernate的APINhibernate虽好,但是未提供工具来自动产生schema文件和代码,这是目前比较麻烦的,
    完全手写,包括设置表和.Net类的编写,比较郁闷,所以让很多初学者望而却步,或者在观望中。期待很酷的工具能出现这篇关于 Nhibernate的文章写得很好,我就不罗嗦了,要不大家会砸我滴~
    NHibernate快速指南 http://dev.csdn.net/develop/article/63/63977.shtm据不完全统计,.NET下的ORM 有如下这些,高手们用了发发意见啊~.NET Persistence BBADataObjects DataObjects.NET Data Tier Modeler for .NET DotNorm Eldorado.NET Enterprise Core Objects (ECO?) Entity Broker eXpress Persistent Objects for .NET FastObjects.NET JC Persistent Framework LLBLGen Pro ModelWorks Nhibernate Nolics.NET Norm Norpheme ObjectBroker ObjectSpaces ObjectSpark Objectz.NET OJB.NET OPF.Net (Object Persistent Framework) ORM.NET Pragmatier Data Tier Builder RapTier Sisyphus Persistence Framework TierDeveloper Bob.NET ObjectPersistor.NET Genome
    展开全文
  • 2.swoft 提供了内置命令帮助快速生成实体类: 生成的model在app/Model/Entity/下 php ./bin/swoft entity:create -y //为数据库下的所有表生成model文件 php ./bin/swoft entity:create -table 表名 //为...
  • LLBLGen ORM代码生成工具(绿色版),可以生成实体类,业务逻辑类,存储过程等等,可以快速开发。
  • 随着不断使用,我们也不断对ORM的源码做了不少改动,让它在支持简单语句生成的同时,也支持让开发人员直接使用手动编写的Sql语句来查询领域实体。但是过程中,一直没有修改最核心的Sql语句生成模块。随着应用
  • 目前有很多开源的ORM项目,大多情况下也不需要我们重复去造轮子,我们只需要了解轮子怎么造的,怎么用就可以,下面简单说一下怎么通过实体生成一个SQL语句; 先建立2个Attribute类,TableAttribute、...
  • 无论是是自写的生成器或者是用EF等ORM工具生成实体类都可能会涉及不满足业务使用的情况 1.属性不足需要自定义增加 因为代码都是根据生成器所产生的,那么每一次生成都会更新覆盖,所以不能再原有生成类的基础上...
  • 基于.Net平台的ORM实体类库管理QQ:1274519843在企业信息开发过程中,大部分软件应用都使用面向对象语言开发,而用关系数据库作为底层数据库,很多业务逻辑都需要通过直接嵌入SQL 语句的硬编码方式来实现,造成数据...
  • 在使用mevan管理的Mybatis的插件来自动生成对应的实体类及通用单表操作函数。 问题现象 在对数据表进行增删改查测试的时候发现,Text长文本类型字段在进行写操作的时候可以正常执行,但是进行读取时数据一直读不到...
  • ORM比较方便的一点就是能够自动生成实体类和DAO类,可以说当entity和dao生成好了,基本上已经完成了一半的工作,大大提高了开发效率。  平时我常用的就是myeclipse,生成的过程简单快捷,代码也简洁不繁琐;当然,...
  • 项目地址: gitHub地址 #使用方法: 配置resources/generactor.properties文件 ... #主要的方法 取得mysql数据库的表的字段信息 /** * 查询一个表的所有列信息 * @param tablename ... public static ...
  • 根据实体生成对应SQL语句, 为任意ORM框架提供一个SQL生成组件. 项目进度 SQL分词 (72%) 自定义SqlQuery (30%) Linq的无缝连接 (0%) Type Mapping 类型映射 (0%) 联系方式 QQ: 292350862 邮箱: 使用协议 Apache ...
  • ORM存储过程和实体生成工具 自己写的一个ORM框架的存储过程和实体生成工具,具体界面如下: 操作步骤: 1.设置数据库连接: 2.选择要生成的表或视图: 3.选择要生成的存储过程类型: 4.如果是视图需要...
  • VichUploaderBundle是一个Symfony捆绑包,尝试简化附加到ORM实体,MongoDB ODM文档或PHPCR ODM文档的文件上传。 自动命名并将文件保存到配置的目录 从文件存储Symfony\Component\HttpFoundation\File\File作为...
  • 关于ORM实体映射的感想 (Object /Relational Mapper )What ORM?Object /Relational Mapper Why ORM 一般的数据库访问是建立于传统的数据库访问模型的基础之上,即是Connection,Command等对象,通过SQL语句与数据库...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 42,063
精华内容 16,825
关键字:

orm实体怎么生成