摘要:
Index.cshtml@model IEnumerable 名称 操作 @foreach (var item in Model) { @item.CategoryName }CategoryController.csusing System;using System... 阅读全文
摘要:
ASP.NET MVC中进行分页的方式有多种,在NuGet上有提供使用PagedList、PagedList.Mvc进行分页。 1. 通过NuGet引用PagedList.Mvc 在安装引用PagedList.Mvc的同时会安装引用PagedList。 2. PagedList.Mvc基本使用 ProvinceController.cs:using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;using MvcExample.Model... 阅读全文
摘要:
JS/CSS文件的打包合并(Bundling)及压缩(Minification)是指将多个JS或CSS文件打包合并成一个文件,并在网站发布之后进行压缩,从而减少HTTP请求次数,提高网络加载速度和页面解析速度。压缩功能实现了对javascript脚本和CSS进行压缩的功能,它能够去除脚本或样式中不必要的空白和注释,同时能够优化脚本变量名的长度。 在ASP.NET MVC 4中JS/CSS文件动态合并及压缩通过调用System.Web.Optimization定义的类ScriptBundle及StyleBundle来实现。 1. 新建ASP.NET MVC 4空项目,引用System.W... 阅读全文
摘要:
Entity Framework Code First通过DbContext.ChangeTracker对实体对象的变动进行跟踪,实现跟踪的方式有两种:变动跟踪快照和变动跟踪代理。 变动跟踪快照:前面几篇随笔的示例都是通过实体对象变动快照跟踪来实现数据操作的,POCO模型不包含任何逻辑去通知Entity Framework实体类属性的变动。Entity Framework在第一次对象加载到内存中时进行一次快照,添加快照发生在返回一次查询或添加一个对象到DbSet中时。当Entity Framework需要知道对象的变动时,将先把当前实体与快照中的对象进行扫描对比。实现扫描对比的方法是调用... 阅读全文
摘要:
1、添加外键关联实体 1>、添加新的Province及City实体using (var ctx = new PortalContext()){ var city1 = new City { CityNo = "10010", CityName = "测试城市1" }; var city2 = new City { CityNo = "10020", CityName = "测试城市2" }; var province = new Province { ProvinceNo... 阅读全文
摘要:
对于一个单独实体的通常操作有3种:添加新的实体、修改实体以及删除实体。 1、添加新的实体 Entity Framework Code First添加新的实体通过调用DbSet.Add()方法来实现。using (var ctx = new PortalContext()){ var province = new Province { ProvinceNo = "100000", ProvinceName = "测试" }; ctx.Provinces.Add(province); ctx.SaveChanges();} 代码运... 阅读全文
摘要:
在项目过程中,两个实体数据之间在往往并非完全独立的,而是存在一定的关联关系,如一对一、一对多及多对多等关联。存在关联关系的实体,经常根据一个实体的实例来查询获取与之关联的另外实体的实例。 Entity Framework常用处理数据关联加载的方式有3种:延迟加载(Lazy Loading)、贪婪加载(Eager Loading)以及显示加载(Explicit Loading)。 1、延迟加载(Lazy Loading) 延迟加载是项目应用中常见的方式,Entity Framework在需要时可以自动为一个实体的实例获取关联的数据。 Entity Framework自动延迟加载需要满... 阅读全文
摘要:
DbContext、DbSet及DbQuery是Entity Framework Code First引入的3个新的类,其中DbContext用于保持数据库会话连接,实体变化跟踪及保存,DbSet用于暂存实体类的变化跟踪,DbQuery用于提供查询跟你。 1、使用Set查询全部记录 使用DbContext查询首先需要保证DbContext的实例在使用完之后对资源的释放,释放DbContext实例资源的方法有两种:采用using代码块结构和调用DbContext实例的Dispose()方法。using (var ctx = new PortalContext()){ foreach... 阅读全文
摘要:
1、Entity Framework Code First查询视图 Entity Framework Code First目前还没有特别针对View操作的方法,但对于可更新的视图,可以采用与Table一样的方式进行插入、修改、删除及查询。在实际的项目过程中,视图多只用于进行查询。 Entity Framework Code First查询视图示例: 使用到的表及视图结构如下: 文件类VCity.cs:using System;using System.Collections.Generic;namespace Portal.Models{ public class VCity ... 阅读全文
摘要:
本篇随笔目录: 1、外键列名默认约定 2、一对多关系 3、一对一关系 4、多对多关系 5、一对多自反关系 6、多对多自反关系 在关系数据库中,不同表之间往往不是全部都单独存在,而是相互存在关联的。两个不同表之间可以存在外键依赖关系,一个表自身也可以有自反关系(表中的一个字段引用主键,从而也是外键字段)。 Entity Framework Code First默认多重关系的一些约定规则: 一对多关系:两个类中分别包含一个引用和一个集合属性,也可以是一个类包含另一个类的引用属性,或一个类包含另一个类的集合属性。如在本篇接下来用到的例子Category类和Product类,要使... 阅读全文
摘要:
Entity Framework Code First与数据表之间的映射方式有两种实现:Data Annotation和Fluent API。本文中采用创建Product类为例来说明tity Framework Code First属性映射约定的具体方式。1. 表名及所有者 在默认约定的情况下... 阅读全文
摘要:
1. 安装Entity Framework 使用NuGet安装Entity Framework程序包:工具->库程序包管理器->程序包管理器控制台,执行以下语句:PM> Install-Package EntityFramework2. Entity Framework数据库连接配置 安装了En... 阅读全文
摘要:
在Visual Studio 2010安装了EF Power Tools Beta 3之后,希望根据本地现有数据库模型来生成基于Entity Framework Code First的代码时,经常出现提示参数不正确,如下图所示: 对于“异常来自 HRESULT:0x80070057 (E_INVALIDARG)”,有方法说“删除 C:/WINDOWS/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET files这个文件夹”,只是删除掉该文件夹之后,再次尝试生成代码时仍然会报出上面的错误。 这里提供的解决方法: 在“连接属性”中,... 阅读全文
摘要:
1、EF Code First创建数据库 新建控制台应用程序Portal,通过程序包管理器控制台添加EntityFramework。 在程序包管理器控制台中执行以下语句,安装EntityFramework。PM> Install-Package EntityFramework 安装成功后,界面提示如下图: 在新建的Portal控制台应用程序中添加两个实体类,代码结构如下: 其中,类文件PortalContext.cs的代码如下:using System;using System.Collections.Generic;using System.Linq;using System.Te.. 阅读全文
摘要:
1、设置新建工作簿的默认工作表数量 默认情况下,一个新的工作簿中只含有3个工作表,其名字分别是Sheet1、Sheet2和Sheet3,表示在工作表标签中。用户可以改变工作簿中默认工作表数量,具体操作步骤如下: ◊ 单击“文件”选项卡,在弹出的菜单中单击“选项”命令,打开“Excel选项”对话框。 ◊ 选择左侧“常规”选项,然后在右侧的“新建工作簿时”组中,将“包含的工作表数”中的内容设置为所需数值即可。2、重命名工作表 对于一个新建的工作簿,默认的工作表名为Sheet1、Sheet2和Sheet3,用户可以通过以下几种方法重命名工作表: ◊ 双击要重命名的工作表标签,输入工作表的新... 阅读全文
摘要:
数组是元素的一个有序组合。在JavaScript中,数组可以使用正式的对象表示法来创建,或者可以使用直接量表示法来初始化。var arrObject = new Array("val1", "val2"); // 作为对象的数组var arrLiteral = ["val1", "val2"]; // 数组直接量 对于开发者来说,这没有区别:在直接量和对象上都可以调用一个Array方法。对于JavaScript引擎来说,每次访问数组直接量的时候,必须重新解释它,特别是在一个函数中使用它的时候。 使用new运算符来创 阅读全文
摘要:
1、检查一个存在的、非空的字符串 问题:想要检查一个已经定义了的变量,是一个字符串,并且它不为空。 解决方案: 使用typeof运算符、通用的valueOf方法以及String length属性来创建一个条件测试,以确保一个变量是存在的,是一个字符串,并且不为空。<script type="text/javascript"> // 如果变量存在,是一个字符串,并且其长度大于0,结果为真。 if (((typeof unknownVariable != "undefined") && (typeof unknownVariabl 阅读全文
摘要:
1、DOM模型中的节点 在DOM中有3种节点,分别是元素节点、文本节点和属性节点。 元素节点(element node),可以说整个DOM模型都是由元素节点构成的。元素节点可以包含其他的元素。 文本节点(text node),在XHTML文档中,文本节点总是包含在元素节点的内部,但并不是所有的元素节点都包含文本节点。 属性节点(attribute node),属性节点总是包含在元素节点中。 阅读全文
摘要:
创建一个新的Date对象:var oDate = new Date(); 上面代码创建出的时间对象是运行这段代码时瞬间的系统时间。方法描述oDate.getFullYear()返回四位数的年份(如:2013)oDate.getYear()根据浏览器的不同返回两位或者四位数的年份,因此不推荐使用oDate.getMonth()返回用整数表示的月份,从0(1月)到11(12月)oDate.getDate()返回日期,从1开始oDate.getDay()返回星期几,从0(星期日)到6(星期六)oDate.getHours()返回小时数,从0到23(24小时制)oDate.getMinutes(... 阅读全文
摘要:
类型前缀示例数组aaArray布尔值bbBool浮点型(数字)ffFloat函数fnfnFunction整型(数字)iiNumber对象ooObject正则表达式rerePattern字符串ssString变形(可以是任意类型)vvVariable 阅读全文