04 2015 档案
摘要:##Configuration SettingsWebAPI中的configuration settings定义在[HttpConfiguration](https://msdn.microsoft.com/en-us/library/system.web.http.httpconfiguratio...
阅读全文
摘要:##项目结构 * bower.json [Bower](http://bower.io/)依据此文件安装需要的前端的包 * package.json ...
阅读全文
摘要:aspnet_regsql命令创建需要的表结构 1 public class UserProfile:ProfileBase 2 { 3 [SettingsAllowAnonymous(true)] //默认匿名用户不能访问 4 public string...
阅读全文
摘要:自定以身份认证需要继承IIdentity与IPrincipal这两个接口来实现,这个过程是在AuthenticateRequest阶段完成的。以下过程都是模拟实现身份认证的,通过这种方式可以将ticket中保存的数据取出来用于初始化IPrincipal的实现,从而改变HttpContext.Curr...
阅读全文
摘要:Authentication(认证) WebAPI中的认证既可以使用HttpModel也可以使用HTTP message handler,具体使用哪个可以参考一下依据:一个HttpModel可以检测ASP.NET请求管道中的所有请求,一个message handler仅仅可以检测到被路由到这个Web...
阅读全文
摘要:如果没有对应的web api模板,首先使用nuget进行安装例子1:ProductController 是以硬编码的方式使用StoreAppContext类的实例,可以使用依赖注入模式,在外部指定上下文实例 1 public interface IStoreAppContext:IDisposa...
阅读全文
摘要:安装追踪用的包Install-Package Microsoft.AspNet.WebApi.TracingUpdate-Package Microsoft.AspNet.WebApi.WebHost //-Version指定具体的版本启用追踪的功能(在WebApiConfig.cs中)publ...
阅读全文
摘要:HttpResponseException当WebAPI的控制器抛出一个未捕获的异常时,默认情况下,大多数异常被转为status code为500的http response即服务端错误。HttpResonseException是一个特别的情况,这个异常可以返回任意指定的http status co...
阅读全文
摘要:Content Negotiation的意思是:当有多种Content-Type可供选择时,选择最合适的一种进行序列化并返回给client。主要依据请求中的Accept、Accept-Charset、Accept-Encoding、Accept-Language这些属性决定的,但也会查看其它属性如,...
阅读全文
摘要:BSON是轻量级的,能够进行快速查询和高效的解码/编码。BSON方便查询是由于elements的前面都有一个表示长度的字段,所以解释器可以快速跳过这个elements;高效的解码/编码是因为numeric数据直接存储为numbers,不用转为string。在服务端启用BSONpublic stati...
阅读全文
摘要:JSON序列化:WebAPI的默认序列库使用的是Json.NET,可以在Globally中配置使用DataContractJsonSerializer 进行序列化 protected void Application_Start() { Global...
阅读全文
摘要:Web API内建支持XML、JSON、BSON、和form-urlencoded的MiME type。创建的自定义MIME类型要继承一下类中的一个:MediaTypeFormatter这个类使用异步的读/写方法BufferedMediaTypeFormatter这个类继承自MediaTypeFor...
阅读全文
摘要:EMD安全 查询语法是基于entity data model(EDM),不是基于底层的model类型,可以从EDM排除一个属性,这样这个属性在client就不能被查询了。有两种方式可以从EDM中排除一个属性第一种使用[IgnoreDataMember]特性public class Employee{...
阅读全文
摘要:查看EF生成的sql的方法1.通过在context中设置可以追踪EF【版本必须是6.0或以上】中生成的sqlpublic BookServiceContext() : base("name=BookServiceContext"){ // 当然也可以输出到其它位置 this.Databa...
阅读全文
摘要:原文:Loading Related EntitiesEF加载数据的方式:预加载 eager loading延迟加载 lazy loading显示加载 explicit loading预先加载会加载所有相关的实体,通过Include方法来实现 1 using (var context = new B...
阅读全文
摘要:在解决方案中有多个项目时,使用Enable-Migrations 命令进行数据迁移时,出现以下错误:尝试在Enable-Migrations 命令中指定-projectName也不行,最后将要操作的项目设置为启动项目就行了
阅读全文
摘要:在进行code first的迁移时,update-database后默认在App_data文件夹下会新建数据库,如果删除了在使用update-database命令会出现以下错误:Cannot attach the file 'E:\WebApiStudy\App_Data\BooksAPIConte...
阅读全文
摘要:从WebApi 1迁移到WebAPI 2要改变配置代码如下:WebApi1:protected void Application_Start(){ // WARNING - Not compatible with attribute routing. WebApiConfig.Regis...
阅读全文
摘要:可以通过Visual Studio运行时文本模板在您的应用程序在运行时生成文本字符串。执行应用程序的计算机不必具有 Visual Studio。运行库模板有时称为"预处理文本模板"由于在编译时,该模板会生成运行时执行的代码。将现有文件转换为运行时模板:将该文件的“自定义工具”属性设置为TextTem...
阅读全文
摘要:SqlParameter中size对于需要指定大小的数据库中的数据类型参数有影响【如nvarchar】,如果对于这些类型没有指定size则会默认根据赋的值进行推导应该指定的size,而对于那些大小固定的数据类型类型没有影响【如 int】 SqlParameter para=new SqlParame...
阅读全文
摘要:如果framework找到一个匹配的URI,创建一个包含占位符值的字典,key就是这些占位符(不包括大括号),value来自URI或者默认值,这个字典存储在IHttpRouteData对象中。默认值可能是RouteParameter.Optional,此时对应的key/value不会被添加到该字典中...
阅读全文
摘要:如果一条路由匹配,WebAPI选择controller和action通过如下方式:1.找到controller,将"controller"赋值给{controller}变量2.寻找action,web api查看http的请求方式,然后寻找一个以对应请求方式开头的action,如Get请求,需要寻找...
阅读全文
摘要:EF中在使用linq就行查询select时不能直接使用自动映射生成的类,需要在单独声明一个类或者使用匿名类在查询完成后再转为对应的对象。 1 public partial class WebForm1 : System.Web.UI.Page 2 { 3 protecte...
阅读全文
摘要:schema类似命名空间,相同schema中不能有同样的表名,不用schema下可以有相同的表名修改schema的方法:在数据库的 安全性->架构 中添加一个新的架构找到要修改的表,右击设计在属性栏中选择需要的schema
阅读全文
摘要:在shell中删除一个集合,执行db.test.drop()或者db.runCommand({"drop":"test"}),在MongoDB中命令其实是作为一种特殊类型的查询来实现的,这些查询针对$cmd集合来执行,runCommand仅仅是接受命令文档,执行等价查询,因此drop调用实际是这样的...
阅读全文
摘要:count 返回集合中文档数量文档数量db.foo.count()db.foo.count({"x":2})View Codedistinct用来找出给定键的所有不同的值,使用时必须指定集合和键db.runCommand({"distinct":"person","key","age"})db.pe...
阅读全文
摘要:创建索引使用ensureIndex方法,对于同一个集合,同样的索引只需要创建一次,反复创建是徒劳的。对某个键的索引会加速对该键的查询,然而,对于其它查询可能没有帮助,即便是查询中包含了被索引的键。实践证明,一定要创建查询中用到的所有键的索引一般来说,如果索引包含N个键,则对于前几个键的查询都会有帮助...
阅读全文
浙公网安备 33010602011771号