,我们使用了Fluent NHibernate的Mapping方式代替XML配置。...使用Fluent NHibernate的最大好处是降低了出错的机会,因为Fluent Nhibernate的配置是使用C#来编写,可以智能感知,而且还能编译,不像原始的XML配置,写错了都不知道。...Fluent NHibernate的配置方式仍然是需要编写Mapping代码的,也就意味着,如果我更改class或者DataTable的时候,还要对应的更改该Mapping文件。...更多的修改意味着更多的风险,为了减少这方面的风险,同时为了减少配置的工作量,所以在最新的项目中采用了Fluent NHibernate中的Automapping。...(比如CostCenter类对应表COST_CENTER) 类中的主键使用Id命名,表中的主键使用表名+“_ID”的命名方式。
实现效果 如果 pod 名为 prod,输出索引名为 prod-2021.01.24 EFK 版本:es 7.12, fluent-bit 1.7.5, kibana 7.12 2....实现方式 读取日志数据中 kubernetes.labels.app 数据,根据该数据直接生产新索引。...fluent-bit 1.7 以上版本通过 output 中 Logstash_Prefix_Key 字段实现输出动态索引名 比如采集日志为 {"key1": 1234, "kubernetes":...* logstash_format on logstash_prefix_key $kubernetes['labels']['app'] 会生成索引名...参考: 官方说明:https://github.com/fluent/fluent-bit/issues/421#issuecomment-766912018
如果你要体验NHibernate的强大,首先你就要学会配置,包括SessionFactory和Mapping的配置。今天跟上一篇一样,会使用传统方式和 NHibernate 进行讲解。...本节内容: 简单实体映射 使用自定义类型映射实体属性 NHibernate的实体映射(Entity Mapping)做的非常好,虽然不是完美,但一些我们经常使用的,基本上已经都支持了,而且配置也相对比较简单...二、使用自定义类型映射实体属性 NHibernate支持我们用自定义的类型来映射属性,但因为我是初学,我真的不会,当然我在网上找到了相关的资料,在此也不多说,就说说Fluent的方式吧,在我映射自定义属性的时候...为了接下来的方便,我把Fluent的Mapping都生成到我传统方式的Mapping目录中,加入到项目,设置成嵌入的资源,一切都为了以后的教程,换句话说以后的教程中,我一般都会使用Fluent来进行映射...前几天的开篇“Fluent NHibernate之旅一”,反响不是很好,或许大家用NHibernate的真的很少,或许我写的不够好,或许。。。。
本篇内容: 1、初识Fluent NHibernate(简称Fluent) 2、使用NHibernate和Fluent创建ISessionFactory 3、传统方式和Fluent的对比。...下载地址:http://fluentnhibernate.org/ 二、使用NHibernate和Fluent创建ISessionFactory 准备工作: 1、下载Fluent类库,其中已经包含了NHibernate...2、下载NHibernate类库,虽然Fluent已经有了最新版本,但我们还需要Proxy的Dll,这里我们使用NHibernate.ByteCode.Castle这个程序集。...传统方式对于一些经常使用的程序员来说非常简便,加上代码生成工具,使用起来也会游刃有余,但对于新手来说,Fluent绝对是一个好帮手。...当然不,Fluent的开发者不仅帮你保留了原有的方式,还可以混合你的配置文件,最有意思的时,你还可以使用它来学习NHibernate,甚至可以使用它来开发你自己的自动代码生成工具,因为我也刚学,先介绍一些简单的
经过了“开篇”和“简单映射”两篇文章,相信大家对Fluent NHibernate 有了一定的了解了,FluentNHibernate实际就是对 NHibernate 映射的一定扩展,我们能完全利用强类型...从这一篇开始,我们将使用Fluent NHibernate RC 1.0 版来进行演示,先前的代码,我会另外进行说明 继承 在OOP中,继承作为OO中重要的特性,如果NHibernate没有对它的支持,...,好的做法是把子类映射区分开来,等一下你会知道,第一种策略和第二种策略都会采用这样的方式来进行映射,至于映射会使用subclass还好是join-subclass,FluentNHibernate会自动生成的...这种方式表结构清晰,而且不会有亢余字段,同时方便扩展,是不错的选择,不过这不是说其他方式没有用,要看你的使用场景。看表结构: ? 这里注意的是,子表的主键不是递增的(废话,呵呵)。...总结 这次说了一下继承的映射方式,其实很早就写好了,正好遇到Fluent NHibernate发布了RC版,所以用了一些时间去学习了下,总的来说,这次升级呢非常好,可能会存在更多的bug,但不影响我们的正常使用
生成删除索引的 SQL 语句 mysql -uwxy -p12345 -S /data/18253/mysqldata/mysql.sock -e " select concat('alter table...生成创建索引的 SQL 语句 mysql -uwxy -p12345 -S /data/18253/mysqldata/mysql.sock -e " select concat('alter table...生成分析表的 SQL 语句 mysql -uwxy -p12345 -S /data/18253/mysqldata/mysql.sock -e " select concat('analyze table
经过了前面三篇的介绍,相信大家对Fluent NHibernate已经有一定的了解了,在我们学习中,Fluent 也已经进入了RTM版本。...这次的版本发布离RC版只有半个月不到,修正了很多bug,同时补充了大量的功能,在每天更新中,也看到了大量的单元测试,我们相信Fluent NHibernate 已经相对稳定成熟了。...Fluent NHibernate之旅系列导航: 一、开篇:ISessionFactory Configuration 二、实体映射:Entity Mapping 三、继承映射:Inheritence...映射 Fluent NHibernate 映射代码: public class UserMap : ClassMap { public UserMap() {...(); 虽然Fluent支持,虽然编译通过,但在创建ISessionFactory的时候,却会抛出异常,因为NHibernate不支持one-to-one的Lazy的特性,也就是说NHibernate不支持一对一的延迟加载
连贯NHibernate(Fluent NHibernate) 是通过编程方式而不是使用XML配置文件创建NHibernate映射的API。...它的目标是在项目中运用NHibernate时减少所遇到的困难,提供更好的可读性、可测试性和编译时的安全性。...连贯NHibernate降低了复杂性,并进一步加强了约定胜于配置的原则,即任何一个映射的最常用设置是默认的。 除了编译时的检查外连贯NHibernate还为你的映射的测试提供了一个健壮的API。...Wiki上有教程告诉怎么用,园子里的inday的几篇文章可以先看一下: [原创]Fluent NHibernate之旅 [原创]Fluent NHibernate之旅二--Entity Mapping...[原创]Fluent NHibernate之旅(三)—继承 codeproject上也有一篇针对RC的文章:Fluent NHibernate and Linq2NHibernate – Demo Project
Fluent Mapping 和 Attribute Mapping 不同, 有其独特的设计风格。...下面就通过一个实例来说明怎么使用 NHibernate 自带的代码映射。 实体关系 要映射的类关系图如下: ?...使用 Table 函数将类映射到制定的数据表: Table("product"); 标识映射 使用 Id 函数映射标识, NHibernate 提供了内置的工具类来简化代码: Id( m =>...总结 与 xml 映射以及其它第三方映射相比, 使用 NHibernate 代码映射有下面几个优点: 不需要使用 xml 文件即可完成, 可以充分利用 IDE 智能提示, 重构, 以及编译时检查; 与...Attribute Mapping 相比, 对原来的 POCO 实体类没有污染 (Attribute) ; NHibernate 自带, 可以说是一等公民, 而 Fluent Mapping 是第三方维护的
Fluent NHibernate之旅系列导航: 一、开篇:ISessionFactory Configuration 二、实体映射:Entity Mapping 三、继承映射:Inheritence...映射 不得不赞叹一下 Fluent Nhibernate ,有了它,我们的映射一切都变得如此简单,先来看看Model吧,用户的订单列表,对于用户来说,暂时是不需要排序的,所以我们可以使用ISet作为Order...一对多的映射,比起一对一来说还相对的简单点,默认是延迟加载,如果项目中,有些地方,需要立即加载,我们也可以使用 FetchMode.Eager 来加载。...我们在Output中,能看到NHibernate生成的Sql语句,测试也成功,说明我们刚刚是立即加载了Orders属性。...如果您在使用Fluent Nhibernate的时候也遇到了问题,可以及时与我联系或求助于Fluent 的Google Groups。 应“亦续缘”的要求,我把代码整理了下,发上来,便于大家学习。
项目中一般使用的都是单表查询,但是在一些业务场景下,偶尔会选择联表查询,一直对联表查询时如何使用索引一直感到很好奇。...正好近期项目中遇到一个问题,联表查询时,没有建立索引,耗时居然达到了可耻的10分钟,所以趁机了解了一下。...给Where条件建立索引,并不一定会使用。...--------+---------+-------------------+------+----------+------------------------------+ 结果执行上来看,并没有使用索引...-------------+----------+---------+-------------------+------+----------+-----------------------+ 则会使用索引
Fluent Nhibernate(以下简称FN)发展到如今,已经相当成熟了,在Nhibernate的书中也相应的推荐了使用FN来进行映射配置,之前写的FN之旅至今还有很多人会来私信我问题,说来惭愧,从...Entity Mapping 三、继承映射:Inheritence Mapping 四、一对一映射:One-to-One Mapping 五、一对多映射:One-to-Many Mapping 六、Fluent...NHibernate之旅(四)-- 关系(下) 安装 现在在项目中使用FN很方便,使用Nuget管理就可以了,但我还是建议大家,可以下载源代码,自己可以详细了解下。...这个其实就是AutoMapping在处理映射的时候,都是按照一定的规则去映射的,细心的朋友可能发现,我们的索引字段的字段名都是Id,这就是AutoMapping的约定,我们也可以自己来进行配置。...Fluent Nhibernate确实是个好东西,让我在开发上省去了很多时间,今天虽然介绍了AutoMapping,但我不推荐您在您的项目中使用,用起来没手感(个人感觉),需要约定的东西太多了,对于数据库结构也得按照他的契约来
前言 上一篇《C# 数据操作系列 - 11 NHibernate 配置和结构介绍》 介绍了Nhibernate里的配置内容。这一篇将带领大家了解一下如何使用NHIbernate。...之前提到NHibernate继承了Hibernate的一些传统:使用XML文件进行配置,这一点也是备受争议。...不过,有社区爱好者开发了一个名为《Fluent NHibernate》的项目,用来支持NHibernate的流式配置。...1.2.1 id 任何一个映射都必须声明一个数据表的主键,大多数类也必须有一个唯一标示字段用来区分不同的实例。...类型 column:列名 generator:主键生成器,如果不需要参数可以直接在 id节点处添加,最常用的是native。
Fluent NHiberante(FNT) RC 1.0 已经在上个星期发布了,其中很多东西被废弃,有些方法改进,还有一些命名更贴切,虽说不是很完美,但已经做的非常完善了,如果大家在使用中,发现bug...Fluent NHibernate Release Notes 1.0 : http://wiki.fluentnhibernate.org/Release_notes_1.0 FNT在映射的时候,分为...Fluent Mapping(手动)和Auto Mapping(自动)两种方式,我在我的“Fluent系列”中一直使用的是手动方式,我觉得相对应的好控制,而且也让我同时能更好的学习NHibernate。...2、丢弃了SetAttribute方法:因为前几个版本的FNT还不够完善,很多NHibernate的Attribute都没有提供支持,所以作者留了这一个方法,以便开发者自定义一些attribute。...3、忽略属性(IgnoreProperty),这个不错,在以前,我们自动映射的时候每个属性不管要不要都映射了,在RC版,我们可以使用如下代码,忽略这些属性不进行映射,非常不错,赞一个。
1、EF5利用NuGet升级到EF6后,一些Attribute冲突[未解决]: 我原先的数据驱动使用的是Fluent Nhibernate +Nhibernate+MSSQL2005...因为EF5不支持项目模板生成Code First,所以升级到了EF6,设置到升级以后麻烦来了。...,这次因为后台首页想统计下数据,就利用了存储过程,但在使用中却发现FN目前还不支持存储过程(点击查看官方),没有办法,只能利用Fluent Configuration和HBM Configuration...> nhibernate-mapping-2.2" assembly="Travel.Domain" namespace="Bus.Travel...的方式进行使用了。
B+树索引使用(8)排序使用及其注意事项(二十) 用于分组 有时候我们会对一些相同的数据进行分组:SELECT name, birthday, phone, COUNT(*) FROM person_info...用主键id查询聚簇索引的b+树,这时候的id不是相连的,所以是随机I/O,效率比顺序I/O低很多。 所以会使用两个索引,二级索引的时候顺序I/O,效率高很多,聚簇索引的时候随机I/O效率低很多。...所以如果回表的主键数据太多,占百分之80以上需要回表,那还不如直接聚簇索引全表扫描查询。...那我们什么时候用全表扫描的方式,什么时候用二级索引+回表的聚簇索引方式呢?...这个就是神秘的mysql查询优化器需要做的事,查询优化器会先对数据进行统计,然后根据这些数据,来判断是全表扫描还是二级索引+回表的方式,如果回表的数据比较少,就用二级索引+回表,比如SELECT * FROM
在某些情况下,or条件可以避免全表扫描的。本文使用mysql版本是5.7x 1 .where 语句里面如果带有or条件, myisam表能用到索引, innodb不行。...1)myisam表: CREATE TABLE IF NOT EXISTS `t_myisam` ( `id` int(1) NOT NULL AUTO_INCREMENT,...t_myisam (uid,aNum) values(4,44); mysql> explain select * from t_myisam where id=1 or uid =2; 2)innodb表:...用UNION替换OR (适用于索引列) 通常情况下, 用UNION替换WHERE子句中的OR将会起到较好的效果. 对索引列使用OR将造成全表扫描....注意, 以上规则只针对多个索引列有效. 如果有column没有被索引, 查询效率可能会因为你没有选择OR而降低. 在下面的例子中, LOC_ID 和REGION上都建有索引.
今天抛开 Fluent NHibernate 不谈,我们来谈谈 Asp.Net MVC ,在MVC的View中,我们经常会使用HtmlHelper来生成各种html代码(可能描述不太清楚看代码吧,呵呵)...HtmlHelper原先的功能不是很多,还好有很多扩展方法,我们能用它来生成一个Input控件,比如: 我们使用上面的代码能生成一个没有值的单行文本框...随便说个例子,比如你要添加一个产品,可能它会有几十个属性,意味着你要写几十个Html.TextBox(属性值) (这里可以是其他控件),其实也没有什么,不过真的很不爽,可能我习惯了 Fluent NHibernate...的映射方式,我一直想着使用以下的方式来生成控件: (u => u.UserID, Model.User.UserID, new { @class="class...说实在,MVC好像很多地方要使用那种硬编码,实在不爽,所以要改造一个自己适合的环境还真不容易啊。老赵最近弄了个MVCPath,要不就一起放进去?吼吼 本文章演示代码下载
PowerDesigner导入Excel 1、设计表 ?...= .Cells(1, 4).Value '指定 表名 count = count + 1 For rwIndex = 3 To 1000 '指定要遍历的 Excel行标 由于第2...col.Primary = true '指定主键-------第3行是主键列 End If Next MsgBox "生成数据...表结构共计 " + CStr(count), vbOK + vbInformation, " 表" End With Next Exit Sub End sub 3、 打开PowerDesigner...5、script脚本拷贝到运行页面,点击Run,运行即可 6、PowerDesigner生成数据字典参考:http://blog.csdn.net/jyf0412/article/details/21900075
如果你和我一样喜欢使用IOC,这个库值得你关注,这些IOC我都用过了,现在比较喜欢使用Autofac。...http://www.mvcextension.com/,基于Ms-PL协议的开源库,5.11发布了1.0版本,下面介绍一下他的特性: 这个库的核心是IOC,却可以让你的代码和IOC无关,你的代码却可以使用强大的...Action Filter Fluent Registration:支持构造函数方式注入流贯的注册你的Action Filter。...ModelMetadata Fluent Configuration:支持复合ModelMetadata provider, 默认使用DataAnnotationsModelMetadataProvider...,还支持EF Code First 和 Fluent NHibernate.