自从ADO.NET Entity Framework面世以来,受到大家的热捧,它封装了大量代码生成的工具,用户只需要建立好实体之间的关系,系统就是会为用户自动成功了Add.Delete.CreateObject.Attach.ToList......等等方法,这些方法基本上已经包含获取.删除.插入等基本方法,使用起来非常方便.只是在实体的更新上,由于LINQ面向的是泛型对象T,所以每个对象的更新方法都要由用户自动编辑.有见及此,下面在下利用反射方法,创建了一个更新工具,此工具可以更新Object…
利用泛型和反射,管理配置文件,把Model转换成数据行,并把数据行转换成Model   使用场景:网站配置项目,为了便于管理,网站有几个Model类来管理配置文件, 比如ConfigWebsiteModel 用来管理基本信息 ConfigSeoModel 用来管理SEO信息 ConfigCacheModel 用来管理网站缓存信息 不用Model之间不能有重名属性字段 现在需要把他们储存到数据库中,并从数据库中读取出来转换成Model以便修改.不使用 List<T>和Dictionary<…
ASP.NET MVC深入浅出系列(持续更新)   一. ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态模式,ViewState功不可没,通过的控件的拖拽和绑定,很快就可以搭建出来一个Web项目,其开发速度远胜Java.PHP,当年Web项目并不很重视体验,没有今天响应式,没有各种前端js框架,所以在当年的WebForm,微软是以引以为豪的. 该框架毕竟有时代局限性,随着前端的崛起,随着人们对项目体验的…
背景 在没有泛型前,一旦把一个对象丢进集合中,集合就会忘记对象的类型,把所有的对象都当成 Object 类型处理.当程序从集合中取出对象后,就需要进行强制类型转换,这种转换很容易引起 ClassCastException 异常. 定义 程序在创建集合时指定集合元素的类型.增加了泛型支持后的集合,可以记住集合中元素的类型,并可以在编译时检查集合中元素的类型,如果试图向集合中添加不满足类型要求的对象,编译器就会报错. 示例 集合使用泛型 import java.util.ArrayList; imp…
[学习资料] <C#图解教程>(第17章):https://www.cnblogs.com/moonache/p/7687551.html 电子书下载:https://pan.baidu.com/s/1mhOmBG0 [内容] 定义 泛型类(class) 泛型函数 泛型委托 多个泛型定义(T1.T2.T3) 泛型的约束条件(where) [笔记] 定义 与C++中的模板template<T>一样 可使用泛型的类型:类.结构.接口.委托.方法 注:泛型不只有一个T,可以定义多个泛型T…
反射是一个程序集发现及运行的过程,通过反射可以得到*.exe或*.dll等程序集内部的信息.使用反射可以看到一个程序集内部的接口.类.方法.字段.属性.特性等等信息.在System.Reflection命名空间内包含多个反射常用的类,下面表格列出了常用的几个类. 类型 作用 Assembly 通过此类可以加载操纵一个程序集,并获取程序集内部信息 EventInfo 该类保存给定的事件信息 FieldInfo 该类保存给定的字段信息 MethodInfo 该类保存给定的方法信息 MemberInf…
为了方便大家的阅读和学习,也是响应网友的建议,在这里为这个系列做一个目录.在目录开始这前,我先来回答之前遇到的几个问题. 1.为什么要学习EF? 这个问题很简单,项目需要.这不像学校,没人强迫你学习! 我学习EF的原因主要是: a.EF是微软推荐的数据库访问技术: b.能提高我的开发效率,我不喜欢写那密密麻麻的SQL: c.比我写的SQL更合理,更快.目前EF生成的SQL的质量已经很高了.你比较熟悉SQL的话,那它在速度上肯定比不上你,新手的话就别跟我争快慢了,能写一像样的SQL就不错了.至少我…
在本系列的第一篇随笔<Entity Framework 实体框架的形成之旅--基于泛型的仓储模式的实体框架(1)>中介绍了Entity Framework 实体框架的一些基础知识,以及构建了一个简单的基于泛型的仓储模式的框架,例子也呈现了一个实体框架应用的雏形,本篇继续介绍这个主题,继续深化介绍Entity Framework 实体框架的知识,以及持续优化这个仓储模式的实体框架,主要介绍业务逻辑层的构建,以及利用Unity和反射进行动态的对象注册. 1.EDMX文件位置的调整 我们从上篇例子,…
很久没有写博客了,一些读者也经常问问一些问题,不过最近我确实也很忙,除了处理日常工作外,平常主要的时间也花在了继续研究微软的实体框架(EntityFramework)方面了.这个实体框架加入了很多特性(例如LINQ等),目前也已经应用的比较成熟了,之所以一直没有整理成一个符合自己开发模式的实体框架,是因为这个框架和原来我的基于EnterpriseLibrary的模式还是有很大的不同,不过实体框架推出来也很久了,目前也去到了EntityFramework6了,听说7也快出来了. 随着我自己参考阅读…
EF产生的背景: 编写ADO.NET访问数据的代码,是沉闷而枯燥的,所以微软提供了一个对象关系映射框架(我们称之为EF),通过EF可以自动帮助我们的程序自动生成相关数据库. Writing and managing ADO.Net code for data access is a tedious and monotonous job. Microsoft has provided an O/RM framework called "Entity Framework" to autom…
转自:http://www.cnblogs.com/Tally/archive/2012/09/14/2685011.html 最近在学习研究微软的EF,通过这时间的学习研究,感觉这个EF目前来说还不是很完善,半成品.不过,据说在.Net4.0中,微软将推荐使用此框架,并会有所改善.而且,现在基本上所有数据库均提供了对EF的支持.因此,为以后做技术准备可以学习研究以下.但是,我个人觉得就目前来说,在实际项目慎用此框架. 下面简单的介绍以下这个EF. 在.Net Framework SP1微软包含…
最近在学习研究微软的EF,通过这时间的学习研究,感觉这个EF目前来说还不是很完善,半成品.不过,据说在.Net4.0中,微软将推荐使用此框架,并会有所改善.而且,现在基本上所有数据库均提供了对EF的支持.因此,为以后做技术准备可以学习研究以下.但是,我个人觉得就目前来说,在实际项目慎用此框架. 下面简单的介绍以下这个EF. 在.Net Framework SP1微软包含一个实体框架(Entity Framework),此框架可以理解成微软的一个ORM产品.用于支持开发人员通过对概念性应用程序模型…
一.前言 在实际编写程序时,往往需要与数据库打交道,在单元测试中直接使用数据库又显得太重,如果可以方便的编写一些测试数据,这样更易于检测功能.如何模拟数据库行为便是本篇的主题.微软有教程说明Moq Entity Framework,需注意的是EF的版本必须是6以上.但在这篇教程中是直接使用DbContext,而自己的应用程序中都是用UnitOfWork模式.经过修改后也可以实现类似功能. 二.参考文献 https://msdn.microsoft.com/en-us/data/dn314429…
利用Github和Hexo搭建独立的个人博客--基础篇 摘要:本文主要参考了使用hexo和Github上创建自己的博客.如何搭建一个独立博客--简明Github Pages与Hexo教程和使用GitHub和Hexo搭建免费静态Blog,梳理了主要的逻辑,并作了一些补充. 使用Hexo搭建博客也不错,建议一看. 步骤1:准备工作 github账号注册,建立名为XXX.github.io的repository(仓库) 安装git 安装node.js 安装Hexo(node内置) Hexo安装较易出错…
引言: 前面专题主要介绍了C#1中的2个核心特性——委托和事件,然而在C# 2.0中又引入一个很重要的特性,它就是泛型,大家在平常的操作中肯定会经常碰到并使用它,如果你对于它的一些相关特性还不是很了解,那就让我们一起进入本专题的学习的.   一.泛型的是什么 泛型的英文解释为generic,当然我们查询这个单词时,更多的解释是通用的意思,然而有些人会认为明明是通用类型,怎么成泛型了的,其实这 两者并不冲突的,泛型本来代表的就是通用类型,只是微软可能有一个比较官方的此来形容自己引入的特性而已,既然…
反射 使用反射获取程序运行时的对象和类的真实信息. 获取 Class 对象 每个类被加载之后,系统会为该类生成一个对应的 Class 对象,通过该 Class 对象可以访问到 JVM 中的这个类. 使用 Class 类的 forName(String clazzName) 静态方法.字符串参数的值是某个类的全限定类名,必须包含完整的包名 调用某个类的 class 属性 调用某个对象的 getClass() 方法.该方法是 java.lang.Object 类中的一个方法,所有的 Java 对象都…
package com.test5; import java.lang.reflect.Field; import java.lang.reflect.Method; /** * Java泛型和反射机制(泛型的好处 代码安全简单,自动装箱拆箱,提高代码的重用率) */ public class test5 { public static void main(String[] args) { Employer employer = new Employer(1000, "张三", 25)…
前言 在开发编程中,我们经常会遇到功能非常相似的功能模块,只是他们的处理的数据不一样,所以我们会分别采用多个方法来处理不同的数据类型.但是这个时候,我们就会想一个问题,有没有办法实现利用同一个方法来传递不同种类型的参数呢? 这个时候,泛型也就因运而生,专门来解决这个问题的. 泛型是在C#2.0就推出的一个新语法,由框架升级提供的功能. 说明 泛型通过参数化类型实现在同一份代码上操作多种数据类型.例如使用泛型的类型参数T,定义一个类Stack, 可以用Stack.Stack或者Stack实例化它,…
在实现基础的三层开发的时候,大家时常会在数据层对每个实体进行CRUD的操作,其中存在相当多的重复代码.为了减少重复代码的出现,通常都会定义一个共用类,实现相似的操作,下面为大家介绍一下Entity Framework时常用到的通用类.首先在数据库建立起几个关联表:Person.Company.Position,三个实体之间通过导航属性进行相互引用. 下面为大家分别介绍以泛型实现的 Create.Read.Update.Delete 操作: 1. Create 在ObjectContext类之中,…
Java面试题之基础篇概览 1.一个“.java”源文件中是否可以包含多个类(不是内部类)?有什么限制? 可以有多个类,但只能有一个public的类,且public的类名必须与文件名相一致. 2.Java有没有goto? Java中的保留字,现在未在Java中使用. 3.说说&和&&的区别? &和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为fal…
一.前言 关于Xposed框架相信大家应该不陌生了,他是Android中Hook技术的一个著名的框架,还有一个框架是CydiaSubstrate,但是这个框架是收费的,而且个人觉得不怎么好用,而Xposed框架是免费的而且还是开源的,网上也有很多文章介绍了Xposed框架的原理实现,不了解的同学可以自行查阅即可,本文主要介绍如何通过这个框架来进行系统方法的拦截功能,比如我们开发过程中,对于一些测试环境很难模拟,特别是测试同学有时候像随机改变设备的imei,mcc等信息用来模拟不同测试场景,这时候…
本文转载自: http://www.wjdiankong.cn/android%E4%B8%ADxposed%E6%A1%86%E6%9E%B6%E7%AF%87-%E5%88%A9%E7%94%A8xposed%E6%A1%86%E6%9E%B6%E5%AE%9E%E7%8E%B0%E6%8B%A6%E6%88%AA%E7%B3%BB%E7%BB%9F%E6%96%B9%E6%B3%95/ 一.前言 关于Xposed框架相信大家应该不陌生了,他是Android中Hook技术的一个著名的框架,还…
基础篇 1:为什么学习Python 公司建议使用Python,然后自己通过百度和向有学过Python的同学了解了Python.Python这门语言,入门比较简单,它简单易学,生态圈比较强大,涉及的地方比较多,特别是在人工智能,和数据分析这方面.在未来我觉得是往自动化,人工智能这方面发展的,所以学习了Python. 2:通过什么途径学习Python 自学,练项目,到GitHub上面找一些小项目学习. 3:谈谈对Python和其他语言的区别 Python属于解释型语言,当程序运行时,是一行一行的解释…
第一部分 Python基础篇(80题) 为什么学习Python? 语言本身简洁,优美,功能超级强大,跨平台,从桌面应用,web开发,自动化测试运维,爬虫,人工智能,大数据处理都能做 Python和Java.PHP.C.C#.C++等其他语言的对比? C语言由于其底层操作特性和历史的积累,在嵌入式领域是当之无愧的王者 .               PHP跨平台,性能优越,跟Linux/Unix结合比跟Windows结合性能强45%,开发成本低,PHP 5已经有成熟的面向对象体系,适合开发大型项目…
Java基础篇 1—12 常识 13 this关键字 14参数传递 16 继承 17 访问权限 28—31异常 1—12 常识 1.文件夹以列表展示,显示扩展名,在地址栏显示全路径 2.javac编译 java运行 3.java开发环境 java编辑器 ( integrated development environment) IDE  集成开发环境 常见的Jbuilder.eclipse 4.double d1,d2,d3=0.123   //不表示d1 d2 d3都是0.123 5.程序执行…
你所不知道的库存超限做法 在互联网企业中,限购的做法,多种多样,有的别出心裁,有的因循守旧,但是种种做法皆想达到的目的,无外乎几种,商品卖的完,系统抗的住,库存不超限.虽然短短数语,却有着说不完,道不尽,轻者如释重负,重者涕泪横流的架构体验. 但是,在实际开发过程中,库存超限,作为其中最核心的一员,到底该怎么做,如何做才会是最合适的呢? 今天这篇文章,我将会展示给大家库存限购的五种常见的做法,并对其利弊一一探讨,由于这五种做法,有的在设计之初当做提案被否定掉的,有的在线上跑着,但是在没有任何单元…
一.什么是 Java 的反射机制?   反射(Reflection)是Java的高级特性之一,是框架实现的基础,定义:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制.   一般而言,当用户使用一个类的时候,应该先知道这个类,而后通过这个类产生实例化对象,但是使用反射则可以相反的通过对象找到类.   通俗的讲反射就是可以在程序运行的时候动态…
前言 上一篇我们介绍了如何查看查询计划,本篇将介绍在我们查看的查询计划时的分析技巧,以及几种我们常用的运算符优化技巧,同样侧重基础知识的掌握. 通过本篇可以了解我们平常所写的T-SQL语句,在SQL Server数据库系统中是如何分解执行的,数据结果如何通过各个运算符组织形成的. 技术准备 基于SQL Server2008R2版本,利用微软的一个更简洁的案例库(Northwind)进行解析. 一.数据连接 数据连接是我们在写T-SQL语句的时候最常用的,通过两个表之间关联获取想要的数据. SQL…
Python之路[第十六篇]:Django[基础篇]   Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. 基本配置 一.创建django程序 终端命令:django-admin startproject sitename IDE创建Django程序时,本质上都是自动执行上述命令 其他常用命令: python manage.py runserve…