授权免费注册博客

免费注册博客  时间:2021-04-14  阅读:()
明月软件发布,秦仕川著2016卓越成就经典此文档需商业授权,请尊重版权1Moon.
Orm技术文档版本号:9.
0发布时间:2016-8-31明月软件发布,秦仕川著2016卓越成就经典此文档需商业授权,请尊重版权2Moon.
Orm旗舰版技术文档导航1.
Moon.
Orm概述.
41.
1Moon.
Orm简述.
41.
2Moon.
Orm追求的方向.
41.
2.
1高性能.
41.
2.
2易用性强.
51.
2.
3多数据库多数据源同时支持.
51.
2.
4智能感知.
51.
2.
5NET2.
0原生支持.
61.
2.
6使用便捷.
61.
2.
7灵活的事务支持.
61.
3Moon.
Orm学习建议.
61.
3.
1学习建议.
61.
3.
2随时更新.
62.
Moon.
Orm相关说明.
72.
1使用授权说明.
72.
1.
1Moon.
Orm任何组织和个人都可以免费使用;72.
1.
2Moon.
Orm使用之前必须按下面的规范授权注册(免费)72.
1.
3未注册即使用的企业,我们有权追究责任;72.
2授权申请规范.
72.
2.
1第一步填写表格.
72.
2.
2第二步将上面表格填完后截图上传.
82.
2.
3第三步邮箱联系我们.
82.
2.
4第四步我们立刻返回授权文件.
82.
3技术问题咨询规范.
82.
3.
1第一步描述问题的规范.
(直接复制,不用截图)82.
3.
2第二步发送问题到官方博客.
82.
4企业服务指南.
92.
4.
1获取旗舰版源代码.
92.
4.
2定制API功能.
92.
4.
3数据迁移服务.
92.
4.
4技术问题咨询服务.
92.
4获取标准版源码.
92.
4.
1开源项目获取源代码.
92.
4.
2帮助Moon获取源代码.
93.
技术详解.
103.
1开发中如何配置.
103.
1.
1配置说明.
103.
1.
2Moon.
Orm.
dll直接支持的数据库类型.
113.
1.
3Moon.
Orm.
dll通用数据库方案.
113.
1.
4MySql数据库配置另行说明.
11明月软件发布,秦仕川著2016卓越成就经典此文档需商业授权,请尊重版权33.
1.
5多数据库多数据源支持.
123.
2全局配置配置说明.
133.
2.
1MOON_WORK_DIRECTORY_PATH.
133.
2.
2USE_TEMP_DLL.
133.
2.
3DLL_EXE_DIRECTORY_PATH.
133.
2.
4CLOSE_LOG.
133.
3从简单的实例了解项目中的使用过程(强烈推荐)133.
4增删改查剖析.
143.
5常用方法讲解.
143.
5.
1如何自己写驱动.
143.
5.
2缓存机制.
141)StartCache(intm),缓存时间单位秒.
142)MoonCache143.
5.
3便捷的分页.
143.
5.
5自定义实体类的开发建议.
173.
5.
6sql之王者归来.
173.
5.
7你需要了解DictionaryList.
183.
5.
8一些辅助你开发的帮助类(位于Moon.
Orm.
Util)183.
5.
8.
1日志功能(LogUtil)183.
5.
8.
2对象克隆(CloneUtil)193.
5.
8.
3Json处理(JsonUtil)193.
5.
8.
4易如反掌的Ajax异步分页(PagerUtil)193.
5.
8.
5Enum辅助类(EnumUtil)193.
5.
8.
6ListUtil.
193.
6使用中常见的问题及注意点.
203.
6.
1常规问题.
203.
6.
1.
1如何对连接字符串加密处理.
203.
6.
1.
2如何批量导入.
203.
6.
1.
3事务操作.
203.
6.
1.
5distinct查询问题.
223.
6.
1.
6判断当前的数据库类型.
223.
6.
1.
7如何生成Oracle的实体层.
223.
6.
1.
8MQL如何拼接.
233.
6.
2Sqlite的问题及注意点.
233.
6.
2.
1使用sqlite时的注意项.
233.
6.
3Mysql的问题及注意点.
233.
6.
3.
1发现MySql一切配置正常,但不能运行.
233.
6.
3.
2不能插入数据(duplicateprimarykey类型错误).
.
.
.
.
.
.
243.
6.
4SqlServer的问题及注意点.
243.
6.
4.
1sqlserver2000数据库支持问题.
243.
6.
4.
2分页时,使用GetPagerToOwnList的注意点.
24明月软件发布,秦仕川著2016卓越成就经典此文档需商业授权,请尊重版权41.
Moon.
Orm概述1.
1Moon.
Orm简述Moon意思是明月的意思,大家不要理解为mono.
它是一个orm框架.
关于它和其他orm的对比,大家可以阅读:www.
cnblogs.
com/humble/p/3426888.
html大道至简,是其着力点.
其特色是以数据库为根基.
所以灵活便捷易用是主要特色.
EF优雅,性能及其坑多是其致命伤;NH历史悠久,然使用和配置复杂;传统代码生成器三层的生成方案失去了编码的便捷和灵活性;其他的商业化的Orm不予评述.
Moon.
Orm,意在打造高性能、易用、便捷、易于维护、多数据库数据源支持的Orm框架.
当然实际开发中没有银弹,只有平衡点.
1.
性能:测试报告http://www.
cnblogs.
com/humble/p/3472764.
html2.
易用性:实体层一键生成→配置文件→智能感知化地编程.
3.
多数库多数据源支持:Moon.
Orm在一同一个项目中,支持多数据库(种类)、多数据源(连接字符串).
Moon.
Orm目前支持的数据库类型有sqlserver、sqlite、oracle、mysql等,只要该数据库拥有对应ADO.
NET库,那么Moon.
Orm就可以支持.
4.
可维护性:a)如果您需要换数据库,直接修改配置文件然后一键生成实体层即可,逻辑代码不动.
b)如果您需要多数据库,直接添加配置节点即可.
c)如果您的数据库表结构或字段发生变动,一键重新生成实体层代码即可.
1.
2Moon.
Orm追求的方向1.
2.
1高性能这也是架构创建的目的之一,已经将它的性能提升到了极致.
大家可以自己测试.
简单给大家一个和ADO.
NET的性能对比测试.
明月软件发布,秦仕川著2016卓越成就经典此文档需商业授权,请尊重版权5更多有关内容请看:http://www.
cnblogs.
com/humble/p/3472764.
html(说明:同时请求10000条数据,此图为一网友公司对moon.
orm的测评)1.
2.
2易用性强用过Moon.
Orm的用户应该可以知道这点.
配置简单,智能感知,代码生成器的辅助,会sql就可使用之.
后续篇幅介绍了关于如何配置的问题,用户可以自行了解.
1.
2.
3多数据库多数据源同时支持在同一个项目中我们常常需要处理这些情况时.
目前moon的目标,支持sqlserver、sqlite、oracle、mysql等各类关系型数据库库.
1.
如果您需要换数据库:直接修改配置文件然后一键生成实体层即可;实体层的代码新建一个项目装起来,在你需要开发的系统中引用这个实体层项目即可.
如果要换其他的数据库库(如sqlserver换mysql),重新生成一份mysql的实体层代码即可(覆盖原来的),因为实体层中的model对外被调用都是一致的,所以根本就不用改代码就能换数据库的目的;2.
如果您需要同时使用多数个据库:直接添加配置文件即可.
详情:Moon使用配置说明3.
如果您的数据库表结构发生变动:一键重新生成实体层代码即可.
1.
2.
4智能感知明月软件发布,秦仕川著2016卓越成就经典此文档需商业授权,请尊重版权6这个不用讲了,值得一提的是MQL(moonquerylanguage,类似于linq:非linq),她能够为你提供强大的智能感知功能,并且任何数据库类型差异.
1.
2.
5NET2.
0原生支持.
有人问:为什么没有LINQ、lambda,因为设计理念不同.
觉得MQL复杂的人们,有了智能感知,你们就适应适应,因为这是萝卜白菜的问题.
你不可能在低版本系统中使用Lamda等高级功能,当然你会说这样的系统是不是应该淘汰了,当你遇到一些老系统中你就明白了.
一句话萝卜白菜各有所爱,设计理念不同.
1.
2.
6使用便捷.
这个上面的链接也谈到,详情见:http://www.
cnblogs.
com/humble/p/3293500.
html1.
2.
7灵活的事务支持1.
3Moon.
Orm学习建议1.
3.
1学习建议首先,给读者最重要的一个建议是配合API文档看看Db类各个API是如何使用的.
如果读者能够使用Db中各个API,那么应该使用起来就不是什么大问题了,其实各个方法见名思意,很容易理解,何况还有注释.
其次,配合博文(http://www.
cnblogs.
com/humble)以及此技术文档作为参考;再次,结合下面给的Demo自己动手试试.
当然你可以进入技术群:群2:225656797群1:2169653491.
3.
2随时更新moon.
orm的更新维护地址:http://lko2o.
com/moon/article/3明月软件发布,秦仕川著2016卓越成就经典此文档需商业授权,请尊重版权7代码生成器的更新地址:http://lko2o.
com/moon/article/9本文档最新地址:http://files.
cnblogs.
com/humble/d.
pdf建议用户将生成的model等生成到一个文件中,不要自己轻易去动这个文件.
当数据库中有调整时,一键生成就可以了.
便捷易用.
2.
Moon.
Orm相关说明2.
1使用授权说明2.
1.
1Moon.
Orm任何组织和个人都可以免费使用;2.
1.
2Moon.
Orm使用之前必须按下面的规范授权注册(免费);如不注册,功能会只限于sqlserver.
免费快速免费.
当然你可以选中不使用旗舰版,你就不用注册了.
之所以要注册是为了规范.
2.
1.
3未注册即使用的企业,我们有权追究责任;很多人在项目中得了便利,但从来不愿参与反馈和建议,我们颇感心寒.
何况注册免费且快速.
所以希望得到大家支持.
注册方式如下2.
2所述.
2.
2授权申请规范2.
2.
1第一步填写表格.
申请类型个人或企业联系人姓名你可以乱填,但我们有权终止你的授权(博客园可以不用真实姓名,邮件中需真实)联系邮箱联系QQ明月软件发布,秦仕川著2016卓越成就经典此文档需商业授权,请尊重版权82.
2.
2第二步将上面表格填完后截图上传.
将表格截图另存为文件,然后上传到博客园的评论中.
博客地址:http://www.
cnblogs.
com/humble/p/3323161.
html2.
2.
3第三步邮箱联系我们.
同时将表格以邮件的形式发送给我们,发送邮件则需要联系人等所有信息必须用真实信息,不要向发送到博客园那样了.
(注:不要截图,要表格.
我们的邮箱是随身的,所以能立即回复你)邮箱地址:qsmy_qin@163.
com邮件标题:授权申请2.
2.
4第四步我们立刻返回授权文件我们以邮件的形式,如反馈给你授权码.
你建立一个文件名为moon.
license,然后将收到的授权码写入此文件中保存即可.
然后你将授权文件moon.
license放入正在使用moon.
orm的项目中(moon.
orm.
dll所在之处).
该授权文件可以重复用于其他项目中.
如果我们给你文件.
请将文件的名字改为moon.
license2.
3技术问题咨询规范2.
3.
1第一步描述问题的规范.
(直接复制,不用截图)2.
3.
2第二步发送问题到官方博客通信地址及邮编(博客园中可以不填写地址)备注(可选)问题描述:异常错误信息:异常截图:联系邮箱:明月软件发布,秦仕川著2016卓越成就经典此文档需商业授权,请尊重版权9请按照上面的格式将内容发送到以下地址评论中.
我们会立即作答,如果按照规范.
反馈地址:http://lko2o.
com/moon/article/3(注:评论与我们的邮箱联系在一起的,所以我们能够随时回复你.
)2.
4企业服务指南注:非诚勿扰2.
4.
1获取旗舰版源代码2.
4.
2定制API功能可以为你的项目量身定制你所需的API功能;2.
4.
3数据迁移服务可以为你已有的项目做数据迁移工作.
2.
4.
4技术问题咨询服务可以随时为你项目做相应的技术咨询服务.
2.
4获取标准版源码5.
0之前已经全部开源,5.
0标准版本目前对参与者开源(看看下面的获取其实很容易的),当然以后会逐渐开源出来;2.
4.
1开源项目获取源代码免费赠送标准版源代码.
2.
4.
2帮助Moon获取源代码1.
帮助写Moon相关博文一篇;2.
帮助完成周边扩展,比如围绕Moon做的一些扩展;3.
帮助完成其他数据库的驱动开发;4.
捐助Moon.
Orm,钱多少不分贵贱,在乎支持诚意;明月软件发布,秦仕川著2016卓越成就经典此文档需商业授权,请尊重版权10捐助Moon{支付宝:shichuangege@126.
com}(套用网友的一句话:为您节约更多时间,去陪恋人、家人和朋友.
.
.
.
.
,留下)5.
加入代码生成器谱写行业,现在你可以写oracle、db2、postgreSQL的代码生成功能,这个很简单,围绕着格式写就可以了;6.
现在推荐15个人入群,即可获取源码,告诉入群者你推荐的他(记住不要乱推荐人进来)3.
技术详解3.
1开发中如何配置当开发一个项目时,我们首先将Moon.
Orm.
dll引入项目中;(如果是sqlite请SQLite.
Interop.
dll手动放入该项目dll所在目录中;如果数据库是mysql记得项目生成目录中有mysql.
data.
dll),如没有注册就想使用mysql数据库,请将代码生成器中的moon.
licence放入你的项目的生成目录中,当你觉得这个框架不错时实战项目开发时,可免费注册获取授权.
或者使用NuGet一键引入,Install-PackageMoonOrm然后利用代码生成器,生成你这个项目数据库对应的Model层,然后将生成的Model层添加到你的项目中.
代码生成器在这里:http://lko2o.
com/moon/article/9接下来,设置程序的配置文件,在connectionStrings节点下如下格式配置3.
1.
1配置说明1)name="DefaultConnection",表示默认配置.
通过vardb=Db.
CreateDefaultDb()调用即可,因为是默认的配置连接;2)connectionString="连接字符串",表示对应的连接字符串.
这个ADO.
NET一致;3)providerName="Moon.
Orm,Moon.
Orm.
SqlServer",表示对应的驱动Moon.
Orm表示Moon.
Orm.
dll中的驱动;(也就是说你自己可以开发驱动)Moon.
Orm.
SqlServer表示其中的SqlServer类,还可以使用以下类型明月软件发布,秦仕川著2016卓越成就经典此文档需商业授权,请尊重版权113.
1.
2Moon.
Orm.
dll直接支持的数据库类型Moon.
Orm.
SqlServerMoon.
Orm.
MySqlMoon.
Orm.
Oracle(微软默认的)Moon.
Orm.
Sqlite3.
1.
3Moon.
Orm.
dll通用数据库方案不想看此节可跳过,此方案的目的有两个:其一,为用户的数据库提供自己满意的驱动(比如我要用甲骨文自己的数据库驱动);其二,一些关系型数据库没有提供直接支持,可以采用此方案进行支持.
配置方式如下:注意,这个providerName和上面3.
1.
1的配置稍有差别,providerName的值如:mysql.
data到MOON_WORK_DIRECTORY_PATH\SharedDbConfig\providerName.
config这个地方进行对应驱动进行简单配置,这个文件及文件内容会在调用你第一次调用Db.
CreateSharedDbByConfigName("configName")自动生成为你生成,配置内容如下,你需要进行填写:3.
1.
4MySql数据库配置另行说明(注:2015_8_12版本之后可以跳过以下内容,当然你也可以根据你的需要进行如下请填写获取自增长主键值的SQL语句所在位置,可值1:表示和插入语句形成整体执行;2:插入之后执行请填写参数化查询所用符号,如@明月软件发布,秦仕川著2016卓越成就经典此文档需商业授权,请尊重版权12配置,非必须)MySql除了上面的配置,根据你的需要加上以下配置(注意:如果你系统中默认就安装了.
net的mysql驱动,可能就不需要了,具体情况,文档下方的mysql常见错误3.
6.
3.
1中介绍)注意其中的版本号Version=5.
2.
3.
0,这是moon.
orm中默认的.
当然你可以用其他版本,这样的话你就需要自己填写您对应的版本号了.
3.
1.
5多数据库多数据源支持……调用方式如下:using(vardb=Db.
CreateDbByConfigName("DefaultConnection2")){//----逻辑代码}明月软件发布,秦仕川著2016卓越成就经典此文档需商业授权,请尊重版权133.
2全局配置配置说明3.
2.
1MOON_WORK_DIRECTORY_PATH表示Moon.
Orm的工作目录的路径,,建议不要自己配置这个路径,系统默认有路径(例如:c:\a\a\de\注意最后有一个分隔符,Linux则反过来的).
如果为空或者没有此节点,(对于exe应用程序,就是exe所在的目录下的MOON_WORK_DIRECTORY_PATH目录;对于web应用程序,就在网站的根目录下的MOON_WORK_DIRECTORY_PATH目录.
)若不为空,则为你所设定的路径(路径中的文件夹不存在,系统也会自动创建的).
3.
2.
2USE_TEMP_DLL系统每次启动的时候,GetDynamicList方法是否使用上次动态生成好的dll来提高首次性能.
在使用GetDynamicList方法时,第一次moon会自动编译查询语句为dll,如果USE_TEMP_DLL为false,那么系统重启后会再次重新生成;如果为true,就不会删除上次的dll,不用再次重新编译.
赋值:true或者false(默认值)GetDynamicList请查看API.
相关使用连接:注:可以没有此节点,没有此节点则默认为false3.
2.
3DLL_EXE_DIRECTORY_PATH表示项目的dll和exe所在目录3.
2.
4CLOSE_LOG是否关闭日志功能,默认false(即日志可用);3.
3从简单的实例了解项目中的使用过程(强烈推荐)详情:http://www.
cnblogs.
com/humble/p/3415506.
html明月软件发布,秦仕川著2016卓越成就经典此文档需商业授权,请尊重版权143.
4增删改查剖析详情:http://www.
cnblogs.
com/humble/p/3380065.
html以及:http://www.
cnblogs.
com/humble/p/3293500.
html3.
5常用方法讲解3.
5.
1如何自己写驱动在3.
3.
1配置说明中讲到,我们是可以直接写数据库驱动的.
书写方式:建一个项目,定义一个类,让他继承Moon.
Orm.
Db抽象类,实现里面的方法即可.
3.
5.
2缓存机制1)StartCache(intm),缓存时间单位秒目前系统采用内存缓存的方式,下面的版本会加入memcached.
Db调用该方法,那么就会将会缓存到内存中m秒.
如果m秒内,内存中有数据,则会直接从内存中取出数据.
2)MoonCache这是一个缓存辅助类(静态类),请查看API根据提示进行使用.
3.
5.
3便捷的分页Moon.
Orm中支持四种格式存储分页数据(DataSet,DictionaryList,List,Json:String).
当然其分页原理一致,只是存储方式不一样而已.
至于DictionaryList为什么结构,请看3.
5.
7.
分页中需要所涉及的参数说明:mql/sql表示你要查询的所有数据.
outintsumPageCount,会返回总页数;outintsumDataCount,会返回数据总条数;pageIndex表示页码;明月软件发布,秦仕川著2016卓越成就经典此文档需商业授权,请尊重版权15onePageDataCount,表示每页中的数据数;oneOrderbyFieldName是sqlserver中会用到的排序字段(查询结果中一个字段),其他类型数据库则填写null(因为其他数据库可以直接将排序写到中).
友情提示:返回的结果都是指定pageIndex页的数据.
1)DataSetGetPagerToDataSet(MQLBasemql,//或者stringsqloutintsumPageCount,intpageIndex,intonePageDataCount,stringoneOrderbyFieldName);2)DictionaryListGetPagerToDictionaryList(MQLBasemql,//或者stringsqloutintsumPageCount,intpageIndex,intonePageDataCount,stringoneOrderbyFieldName);3)ListGetPagerToOwnList(MQLBasemql,//或者stringsqloutintsumPageCount,intpageIndex,明月软件发布,秦仕川著2016卓越成就经典此文档需商业授权,请尊重版权16intonePageDataCount,stringoneOrderbyFieldName)whereT:new()4)StringGetPagerToJson(stringsql,object[]parameters,outintsumPageCount,outintsumDataCount,intpageIndex,intonePageDataCount,stringoneOrderbyFieldName)3.
5.
4手写sql的建议:将sql写到配置文件中有些复杂的sql语句,当你无法书写为mql时,你可以直接写到配置文件中,Moon.
Orm会自动帮你于工作目录的sqls文件夹下创建默认配置的文件sql.
config,你在其中按照模板格式进行书写sql即可.
开发过程中可能几个人需要同时写sql.
config文件,我们的建议是重新建一个sql*.
cong格式的文件(例如sql_a.
config,sql_bbb.
config.
.
.
.
),几个人各用个的文件,但需要注意,其中的id需要自己指定一个前缀防止和其他开发人员重复.
调用方式如下:using(vardb=Db.
CreateDefaultDb()){db.
ExecuteSql***(SqlConfigUtil.
GetSqlByID(db,"getdemo"),12);}明月软件发布,秦仕川著2016卓越成就经典此文档需商业授权,请尊重版权173.
5.
5自定义实体类的开发建议有时候我们会遇到这样的情况:做了一次查询,需要将结果放到一个具体的实体类中,而这个实体类我们没有定义.
这个时候moon.
orm提供两种方式,帮你自动生成实体类.
方法一:通过代码生成器(还没有下载,就去下载吧,)方法二:通过db.
GetModelBySQL()方法在VS中你加一个断点,然后调试时复制一下就可以了.
3.
5.
6sql之王者归来使用db.
GetDynamicList,让你体验另一种自由stringsql22="select*fromScore";dynamiclist22=db.
GetDynamicList(sql22,"Score");//第二参数随便写的(作为类名)foreach(dynamicainlist22){Console.
WriteLine(a.
ID+"--"+a.
ScoreM+"--"+a.
UserID+"—"+a.
TypeName);//对应sql*.
config文件内容!
[CDATA[sqlserver查询,不需要则请置空]]!
[CDATA[mysql查询,不需要则请置空]]!
[CDATA[sqlite查询,不需要则请置空]]!
[CDATA[oracle查询,不需要则请置空]]!
[CDATA[简单描述一下条语句的作用]]明月软件发布,秦仕川著2016卓越成就经典此文档需商业授权,请尊重版权18//都是强类型}3.
5.
7你需要了解DictionaryListDictionaryList继承于List>,含有ToJson,ToString,ShowInConsole三个方法,大家看看API介绍,有助于以后使用于复杂数据结构,因框架中常常会使用它来存放数据.
比如一个对象列表就可以用它来存放.
如,取数据的时候,可以用list[0]["字段名"].
3.
5.
8一些辅助你开发的帮助类(位于Moon.
Orm.
Util)3.
5.
8.
1日志功能(LogUtil)Moon系统中也会使用此日志工具类.
所写的日志位于工作目录的MoonLogs文件夹中,系统会每天写一个日志格式:年-月-日.
log.
可以通过日志查询日常执行的情况;也可以用来作为你自己的日志工具.
该辅助类的特色就是短小易用.
Exception(Exceptionex)Warning(stringcontent)Error(stringcontent)明月软件发布,秦仕川著2016卓越成就经典此文档需商业授权,请尊重版权19Debug(stringcontent)Write(stringtype,stringcontent)3.
5.
8.
2对象克隆(CloneUtil)1)克隆继承EntityBase的类varp2=CloneUtil.
CloneEntityBaseObject(p);2)克隆任意对象(不要较真)可以克隆绝大多数类型对象(利用json,如果json可以序列化这个对象且能反序列化回来的话,那么一切OK)CloneUtil.
Clone(obj);3)克隆可序列化的类CloneSerializableObject(obj);3.
5.
8.
3Json处理(JsonUtil)详情请查看api帮助文档,或者直接VS提示查看3.
5.
8.
4易如反掌的Ajax异步分页(PagerUtil)3.
5.
8.
5Enum辅助类(EnumUtil)1)StringGetEnumNameByValue(intvalue)通过枚举的值获取对应的字符串形式,如果没有对应就为空2)intGetValue(objectenumObj)根据枚举获取对应的int值3.
5.
8.
6ListUtilList>GetCountListList(Listlist,intcount)该方法可以将一个list数据,分成n个list,每个list中的数据条数为明月软件发布,秦仕川著2016卓越成就经典此文档需商业授权,请尊重版权20count(当然不够时,就让它不够).
硬性分页时可以用得上.
3.
6使用中常见的问题及注意点注:所有问题都可以博客园查询.
但记住你以后的提交格式(2.
3技术咨询规范)http://www.
cnblogs.
com/humble/p/3391005.
html3.
6.
1常规问题3.
6.
1.
1如何对连接字符串加密处理目前的处理方式是将连接字符串作为一个全局常量放在代码中,然后通过如下这种方式3.
6.
1.
2如何批量导入原本这个问题不是一个问题,但偷懒的用户也是值得尊重的,目前我们没有在moon.
orm中提供方法,关于sqlbulk大家应该有所耳闻,大家目前自己勤快一点点吧,有时间之后,我们会给予支持,谢谢.
3.
6.
1.
3事务操作我们先看看Moon.
Orm的原理,采用了ADO.
NET最传统的事务方式即DbTransaction下面的代码moon.
orm的事务执行过程,读者自行阅读,代码可到这里下载:http://www.
cnblogs.
com/humble/p/4470582.
htmlpublicstaticDbGetYourDb(){returnnewSqlServer(全局变量);}using(Dbdb=XX.
GetYourDb()){下方进行对应的操作}明月软件发布,秦仕川著2016卓越成就经典此文档需商业授权,请尊重版权21publicstaticvoidTestProc(){varaddID=-11;using(vardb=Db.
CreateDefaultDb()){//开启事务功能db.
TransactionEnabled=true;try{Productsp=newProducts();p.
ProductName="ProductName_TestProc"+DateTime.
Now;p.
Quantity=100;p.
Remark="标记";p.
Unit="单元";p.
UnitPrice=12m;p.
CategoryId=3;db.
Add(p);addID=p.
ProductId;Console.
WriteLine("p.
ProductId:"+addID);Ordersorder=newOrders();order.
Comment="test";order.
CustomerId=-43;//故意制造错误order.
Finished=false;order.
OrderDate=DateTime.
Now;order.
SumMoney=33;db.
Add(order);db.
Transaction.
Commit();}catch(Exceptionex){db.
Transaction.
Rollback();varaa=ex.
Message;Console.
WriteLine(aa);}}using(vardb=Db.
CreateDefaultDb()){Console.
WriteLine("p.
ProductId:"+addID);varexist=db.
Exist(ProductsSet.
ProductId.
Equal(addID));Console.
WriteLine("添加的数据存在吗"+exist);}}明月软件发布,秦仕川著2016卓越成就经典此文档需商业授权,请尊重版权223.
6.
1.
4网络中的数据传输在传输时有很多传输格式大家可以利用.
但在moon.
orm,我们推荐使用json.
便捷、短小、方法全面,Db、实体对象、DictionaryList都支持序列化方法(可通过VS智能感知查看),JsonUtil内部还有很多相关功能,可让用户高效使用.
3.
6.
1.
5distinct查询问题mql中没有直接提供此关键字.
但是对于熟悉sql的读者应该很清楚,通过分组可以替代这个功能,而且性能一致.
我们举例说明:3.
6.
1.
6判断当前的数据库类型3.
6.
1.
7如何生成Oracle的实体层目前代码生成器中没有直接提供对oracle的支持,如果想使用oracle请到群共享中下载codesmith模板,用codesmith生成即可.
codesmith去网上下载吧.
对应模板的下载地址如下:http://pan.
baidu.
com/s/1o69QAuuvarmql=UserInfoSet.
SelectAll().
where(UserInfoSet.
ID.
IN(UserInfoSet.
Select(UserInfoSet.
ID.
Min()).
GroupBy(UserInfoSet.
Name)));对应sql:select*fromuserinfowhereidin(selectmin(id)fromuserinfogroupbyname)using(vardb.
.
.
.
){if(dbisSqlserver)if(dbisMySql)}明月软件发布,秦仕川著2016卓越成就经典此文档需商业授权,请尊重版权233.
6.
1.
8MQL如何拼接下面以一个示例说明如何拼接,相信大家的智商不低于正常水平.
3.
6.
2Sqlite的问题及注意点3.
6.
2.
1使用sqlite时的注意项Sqlite的项目使用中,SQLite.
Interop.
dll(位于Moon.
Orm目录)需要你手动放入你项目的dll目录中,因为这是c++生成的,VS不知道它的存在;3.
6.
3Mysql的问题及注意点3.
6.
3.
1发现MySql一切配置正常,但不能运行using(vardb=Db.
CreateDefaultDb()){varmql=StudentSet.
SelectAll();WhereExpressionexprssion=null;if(true){exprssion=StudentSet.
ID.
BiggerThan(1);}exprssion=exprssion.
And(StudentSet.
Name.
NotEqual("a"));mql=mql.
Where(exprssion);mql=mql.
Top(10);SELECT[Student].
*FROM[Student]WHERE[Student].
[ID]>@p1AND[Student].
[Name]@p2LIMIT0,10@p1=1@p2=a明月软件发布,秦仕川著2016卓越成就经典此文档需商业授权,请尊重版权24如果你已经进行了如上配置,且项目的dll目录中有对应版本的mysql.
data.
dll却不能正常运行,那么有可能因为你的系统中已经安装了mysql官方的.
net驱动包,如发现此情况,请删除DbProviderFactories节点及其所含内容.
3.
6.
3.
2不能插入数据(duplicateprimarykey类型错误)原本插入的数据就没有重复,但就是报这个错误,此时表示你的mysql自己有问题:数据库表的索引名字一样了,你重新为此表的索引命名.
3.
6.
4SqlServer的问题及注意点3.
6.
4.
1sqlserver2000数据库支持问题分页不支持2000,同样代码生成器也不支持20003.
6.
4.
2分页时,使用GetPagerToOwnList的注意点因分页的原理采用ROW_NUMBER,因此T对应的类中必须要有这个属性(ROW_NUMBER),可自行添加,请将该属性设置为Int64;

Webhosting24:€15/年-AMD Ryzen/512MB/10GB/2TB/纽约&日本&新加坡等机房

Webhosting24是一家始于2001年的意大利商家,提供的产品包括虚拟主机、VPS、独立服务器等,可选数机房包括美国洛杉矶、迈阿密、纽约、德国慕尼黑、日本、新加坡、澳大利亚悉尼等。商家VPS主机采用AMD Ryzen 9 5950X CPU,NVMe磁盘,基于KVM架构,德国机房不限制流量,网站采用欧元计费,最低年付15欧元起。这里以美国机房为例,分享几款套餐配置信息。CPU:1core内存...

提速啦香港独立物理服务器E3 16G 20M 5IP 299元

提速啦(www.tisula.com)是赣州王成璟网络科技有限公司旗下云服务器品牌,目前拥有在籍员工40人左右,社保在籍员工30人+,是正规的国内拥有IDC ICP ISP CDN 云牌照资质商家,2018-2021年连续4年获得CTG机房顶级金牌代理商荣誉 2021年赣州市于都县创业大赛三等奖,2020年于都电子商务示范企业,2021年于都县电子商务融合推广大使。资源优势介绍:Ceranetwo...

lcloud零云:沪港IPLC,70元/月/200Mbps端口/共享IPv4/KVM;成都/德阳/雅安独立服务器低至400元/月起

lcloud怎么样?lcloud零云,UOVZ新开的子站,现在沪港iplc KVM VPS有端午节优惠,年付双倍流量,200Mbps带宽,性价比高。100Mbps带宽,500GB月流量,10个,512MB内存,优惠后月付70元,年付700元。另有国内独立服务器租用,泉州、佛山、成都、德阳、雅安独立服务器低至400元/月起!点击进入:lcloud官方网站地址lcloud零云优惠码:优惠码:bMVbR...

免费注册博客为你推荐
Hive常用函数大全一览中国企业在线中金在线和中金公司有关系吗cuteftpcuteFTP的使用方法?sqlserver数据库SQL Server 数据库 (+) 这个是什么意思上海市浦东新区人民法院民事判决书(2009)浦民三(知)初字第206号银花珠树晓来看下雪喝酒的诗句科创板首批名单科创板开市后,可以通过哪些基金参与科创板投资和打新股?瑞东集团福能集团是一个什么企业?厦门三五互联科技股份有限公司厦门三五互联怎么样?什么是seo学习SEO的好处是什么?
中文域名查询 sugarhosts 亚洲大于500m 警告本网站 网通服务器ip java空间 河南移动邮件系统 hostker 免费全能主机 vip购优惠 vip域名 双线机房 智能dns解析 贵阳电信测速 qq金券 如何登陆阿里云邮箱 forwarder asp简介 时间同步服务器 美国vpn服务器 更多