fluent

Entity Framework Fluent API

℡╲_俬逩灬. 提交于 2020-04-01 17:04:45
前言 使用DataAnnotation非常简单,但对于EntityFramework中的特性,就要在实体类中引入EntityFramework程序集,但实体类最好能是保持与架构无关性的POCO类,才能更具通用性。所以,最好是在数据层中使用FluentAPI在数据层中进行实体类与数据库之间的映射工作。从功能上而言Data Annotations是Fluent API的一个子集, Data Annotations可以实现的功能Fluent API都能实现。 Fluent API特性列举 当然,System.ComponentModel.DataAnnotations命名空间的DataAnnotation在EntityFramework程序集中也有相应的API: 设置属性需要在数据库操作上下文的 protected override void OnModelCreating(DbModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); } 1.HasKey - KeyAttribute:配置此实体类型的主键属性 modelBuilder.Entity<Order>().HasKey(order => order.OrderID); 2.IsRequired - RequiredAttribute

Language Proficiency Levels

此生再无相见时 提交于 2020-03-10 19:57:50
0-5 Language Proficiency Levels Detailed below are the language proficiency levels that you can choose from for your resume. They are based on the Inter-agency Language Round-table (ILR) scale that is set by the U.S. Foreign Service Institute . 0 – No Proficiency At this lowest level, there is basically no knowledge of the language. The person may know a few words, but can’t form sentences or carry on any type of conversation. Phrased as: “No English” (example) 1 – Elementary Proficiency At this language proficiency level, a person can form basic sentences, including asking and answering

《Fluent Python》- 03 字典和集合

帅比萌擦擦* 提交于 2020-03-09 11:54:23
字典这个数据结构活跃在所以Python程序背后,即便你没有直接用到它 泛映射类型 非抽象映射类型通常是不会继承抽象基类的。它们会直接对dict或者是collection.UserDict进行扩展。而抽象基类通常的作用是形式化的文档,它们还可以跟isinstance一起被用来判断某个数据是不是广义上的映射类型。 这里用isintance而不是type来检查,是因为这个参数有可能不是dict。 my_dict = {} print(isinstance(my_dict, abc.Mapping)) # True 标准库里的所有映射都是利用dict来实现的,英雌有个限制,只有可散列的数据类型才能用作这些映射里的键。 关于可散列:如果一个对象是可散列的,那么在这个对象的生命周期中,它的散列值是不变的,而且这个对象需要实现__hash__()方法。另外可散列对象还要有__eq__()方法,这样才能和其他键做比较。 关于Python中“Python里所有的不可变类型都是可散列的”这句话其实是不太准确的,比方说元祖,它本身是不可变的,但是内部元素却可能是可变的。 字典推导 自Python2.7以来,列表推导和生成器表达式的概念就移植到了字典上,从而有了字典推导。字典推导可以从任何以建值对作为元素的可迭代对象中构建出字典。 DIAL_CODES = [(86, 'China'), (91,

我如何获取一周中开始的DateTime?

╄→尐↘猪︶ㄣ 提交于 2020-02-28 06:09:26
我如何只知道C#中的当前时间来查找一周的开始(星期日和星期一)? 就像是: DateTime.Now.StartWeek(Monday); #1楼 丑陋,但至少可以给您正确的日期 通过系统设置星期开始时间: public static DateTime FirstDateInWeek(this DateTime dt) { while (dt.DayOfWeek != System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.FirstDayOfWeek) dt = dt.AddDays(-1); return dt; } 没有: public static DateTime FirstDateInWeek(this DateTime dt, DayOfWeek weekStartDay) { while (dt.DayOfWeek != weekStartDay) dt = dt.AddDays(-1); return dt; } #2楼 在C#中尝试使用此代码,您可以获取给定一周的开始日期和最后日期。这里周日是第一天,周六是最后一天,但是您可以根据自己的文化设置两天的日期 DateTime firstDate = GetFirstDateOfWeek(DateTime.Parse("05/09

用飞桨检测谣言,新技能get!

泪湿孤枕 提交于 2020-02-28 02:20:16
【飞桨开发者说】文瑞洁,中科院信工所工程师,主要研究领域:深度学习、自然语言处理。 本实验代码已在AI Studio公开,访问链接进入: https://aistudio.baidu.com/aistudio/projectdetail/263255 社交媒体的发展在加速信息传播的同时,也带来了虚假谣言信息的泛滥,往往会引发诸多不安定因素,并对经济和社会产生巨大的影响。 2016年美国总统大选期间,受访选民平均每人每天接触到4篇虚假新闻,虚假新闻被认为影响了2016年美国大选和英国脱欧的投票结果;近期,在新型冠状病毒感染的肺炎疫情防控的关键期,在全国人民都为疫情揪心时,网上各种有关疫情防控的谣言接连不断,从“广州公交线路因新型冠状病毒肺炎疫情停运”到“北京市为防控疫情采取封城措施”,从“钟南山院士被感染”到“10万人感染肺炎”等等, 这些不切实际的谣言,“操纵”了舆论感情,误导了公众的判断,更影响了社会稳定 。 人们常说“流言止于智者”,要想不被网上的流言和谣言盅惑、伤害,首先需要对其进行科学甄别,而时下人工智能正在尝试担任这一角色。那么,在打假一线AI技术如何做到去伪存真? 传统的谣言检测模型一般根据谣言的内容、用户属性、传播方式人工地构造特征,而人工构建特征存在考虑片面、浪费人力等现象。本次实践使用基于循环神经网络(RNN)的谣言检测模型,将文本中的谣言事件向量化

制作带有kafka插件和es插件的fluentd镜像

北城余情 提交于 2020-02-27 02:54:23
前言 Fluentd是用于统一日志记录层的开源数据收集器,是继Kubernetes、Prometheus、Envoy 、CoreDNS 和containerd后的第6个CNCF毕业项目,常用来对比的是elastic的logstash,相对而言fluentd更加轻量灵活,现在发展非常迅速社区很活跃,在编写这篇blog的时候github的star是8.8k,fork是1k就可见一斑. 前提 docker Dockerfile文件编写 Dockerfile FROM fluent/fluentd:v1.3.2 ADD fluent.conf /etc/fluent/ RUN echo "source 'https://mirrors.tuna.tsinghua.edu.cn/rubygems/'" > Gemfile && gem install bundler RUN gem install fluent-plugin-kafka -v 0.12.3 --no-document RUN gem install fluent-plugin-elasticsearch -v 4.0.3 --no-document CMD ["fluentd"] fluent.conf <source> @type kafka brokers kafka:9092 format json <topic>

# 2020 年了,Java 日志框架到底哪个性能好?——技术选型篇

删除回忆录丶 提交于 2020-02-25 15:50:38
大家好,之前写(shui)了两篇其他类型的文章,感觉大家反响不是很好,于是我乖乖的回来更新硬核技术文了。 经过本系列前两篇文章我们了解到日志框架大战随着 SLF4j 的一统天下而落下帷幕,但 SLF4j 仅仅是接口,实现方面, logback 与 log4j2 仍然难分高下,今天我们就来聊一聊,日志框架实现到底是该选择 Log4j2 还是 Logback。这篇文章我们将从功能、API 设计、可扩展性、性能四个方面展开讨论。 生态 老牌的 Log4j2 凭借着入场早、背靠 Apache 两大优势有着不错的用户支持,官网文档也很完善。 新生的 Logback 凭借着 SLF4j 的原生实现以及被 Spring Boot 钦点的日志框架(Spring 也提供了Log4j2 的 starter,切换依赖即可完成更换日志框架,前文讲过,此处不再赘述),同样也拥有着很好的前景。 社区支持方面,Log4j2 作为 Apache 顶级项目,支持度应该是很不错的,Logback 作为Ceki创业后的产物,也能有很好的保证,二者生态可谓不相上下。 功能 日志的功能我们从使用者的角度可以分为:配置、使用、以及独有特性。 配置文件方面,Log4j 提供了更多的配置文件配置方式,Log4j2 支持 properties、YAML、JSON、XML四种,Logback 则支持 XML 与 groovy

EF里的默认映射以及如何使用Data Annotations和Fluent API配置数据库的映射

故事扮演 提交于 2020-02-19 08:53:06
原文: EF里的默认映射以及如何使用Data Annotations和Fluent API配置数据库的映射 I.EF里的默认映射 上篇文章演示的通过定义实体类就可以自动生成数据库,并且EF自动设置了数据库的主键、外键以及表名和字段的类型等,这就是EF里的默认映射。具体分为: 数据库映射:Code First 默认会在本地的SQL Expression数据库中建立一个和DbContext的子类的全名相同的数据库,全名指的是命名空间加上类名; 表映射:Code First 默认会按照类型名复数建立数据表,比如说Destination类对应的表名就叫Destinations; 列映射:Code First 默认会按照类中的属性名建立column,它还有默认的数据类型映射习惯,int会映射为interger,string会映射为 nvarchar(max),decimal会映射为decimal(18,2); 主键映射:Code First 默认会在类的属性中需找名字为Id或类型名称+Id的int类型的属性作为主键,并且是自增字段。 摘自 这里 默认的映射一般只是简单映射,方便使用罢了。当然这些都是可以进行修改的,请往下看。 II.使用Data Annotations和Fluent API配置数据库的映射 Data Annotations翻译过来就是数据注解

Entity Framework实例详解

旧街凉风 提交于 2020-02-17 23:29:44
Entity Framework Code First的默认行为是使用一系列约定将POCO类映射到表。然而,有时候,不能也不想遵循这些约定,那就需要重写它们。重写默认约定有两种方式:Data Annotations和FluentAPI。Data Annotations在功能上是Fluent API的子集,在一些映射场景下使用Annotations不能达到重写的目的,因此本篇文章中使用Fluent API配置属性。 一、Fluent API配置属性 Code First Fluent API通常情况下是在DbContext的派生类中重写OnModelCreating方法。 1.配置Length Length用来描述数组的长度,当前包括string和Byte数组。 默认约定:Code First对string或byte数组的默认长度约定是max。注意:Sql Server Compact中默认最大数组长度是4000。 重写约定:使用HasMaxLength(nn),参数为可空整数。 1: Property(t => t.Name).HasMaxLength(50); 另外关于Length的Fluent API还有下面2个: IsFixedLength(),配置属性为固定长度。 IsMaxLength(),配置属性为数据库提供程序允许的最大长度。 2.配置Data Type Data

EF Code First 学习笔记:约定配置

微笑、不失礼 提交于 2020-02-04 02:54:51
要更改EF中的默认配置有两个方法,一个是用Data Annotations(在命名空间System.ComponentModel.DataAnnotations;),直接作用于类的属性上面;还有一个就是Fluent API,通过新增相应的配置类来覆盖默认配置。现在我们用这两个来对比了解EF中的约定配置。 主键:KEY Data Annotations:通过Key关键字来标识一个主键 [Key] public int DestinationId { get; set; } Fluent API: public class BreakAwayContext : DbContext { public DbSet<Destination> Destinations { get; set; } public DbSet<Lodging> Lodgings { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { //Fluent API modelBuilder.Entity<Destination>().HasKey(d => d.DestinationId); base.OnModelCreating(modelBuilder); } } 外键 Data Annotations