Linq 笔记

提示错误 "The query results cannot be enumerated more than once."

這段程式碼..會產生上面那段錯誤..原因就是aaaa被判斷成ISingleResult<T>的型別..而ISingleResult<T>不能被enumerate一次以上..所以就會發生exception..
解決方法就是把ToList()這樣就行了....  var aaaa = db.StoredProcedure2().Select(a => a).ToList();

 

13. 

Linq查询返回的是IEnumerable<T>或IQueryable<T>类型,用.ToList()方法转换成List<T>类型。List<T>和IQueryable<T>继承自IEnumerable<T> 

$("#tableArea").tabs({ 

show: function (event, ui) { 

var g_curTab = ui.index; 

}); 

15.First() : 返回集合中的一个元素,其实质就是在SQL语句中加TOP (1)Order ord = db.Orders.First(o => o.Freight > 10.00M);

12. 

第三方缓存: 

目前主要了解过memcached,它是通过在内存中开辟一块区域来维护一个hash表以加快页面的访问速度,和数据库是相对独立的。 

和asp.net本是的缓存机制相比,memcached是一个分布式缓存系统,任何web服务器都能更新或删除缓存项,并且其他所有其他的服务器都能在下次访问时检测到这些更新。memcached已经提供了asp.net 的客户端。 

页面输出缓存应该用在那些不需要经常修改,但是需要经过大量的处理才能完成页面上面,其使用非常简单,只需在aspx页面顶部添加声明: 

<%@ OutputCache Duration="60" VaryByParam="none" %> 

它主要有一些参数,Duration,VaryByParam,VaryByConyrol等 

* Duration,这是必选属性,没有会爆出运行时错误,指缓存的时间(秒),在上面的例子中是60(60秒后缓存失效)。 

* VaryByParam,是指页面根据POST或GET发送的名称/值对来更新缓存的内容,多个参数使用逗号隔开,如果不希望根据如何参数更新缓存那么将其设置为none(上例),如果系统通过所有的参数值 的改变来更新缓存,将其设置为*. 

* 例如对于http://localhost/test.aspx?p=1,可以在test.aspx中设置<%@ OutputCache Duration="60" VaryByParam="p" %>,当p=1时,60秒内数据会缓存,当p=2时又会执行后台代码更新缓存内 容。 

* VaryByConyrol,是指通过当前页面中服务器控件来改变缓存(值是控件的ID,多个控件用分号隔开) 

.net缓存依赖主要分为为两种: 

* 文件缓存依赖 

* 数据库缓存依赖 

文件缓存依赖:该策略让缓存依赖于一个指定的文件,通过文件的更新日期来清楚缓存,加入某些数据是来自于xml文件,那么完全可以将该xml数据的缓存依赖于该xml文件,只要xml文件改变,则自动清 

空依赖其的数据缓存。 

数据库缓存依赖:其实.net已经实现了这个机制:System.Web.Caching.SqlCacheDependency,该类就是.net专门为数据库缓存依赖而设计的,它继承自CacheDependency。

9.删除主键表时 

public void Delete(Dinner dinner) { 

db.RSVPs.DeleteAllOnSubmit(dinner.RSVPs); //删除从表中的数据 

db.Dinners.DeleteOnSubmit(dinner); 

10.return RedirectToAction("Details", new { id = dinner.DinnerID }); 

11.ModelState.AddModelError(issue.PropertyName, issue.ErrorMessage); 

Controller 类有一个ModelState 属性集合,可以用来提示传递到视图的model 对象是否有错误。ModelState中Error 记录识别模型属性的名称和错误信息,并允许指定友好的错误信息。 

Html.ValidationMessage() 辅助方法用来输出特定Model 属性相关的ModelState 错误信息: 

<%= Html.ValidationMessage("EventDate")%> 

上述代码输出:<span class="field-validation-error"> The value ‘BOGUS' is invalid</span> 

Html.ValidationMessage() 辅助方法也支持第二个参数,允许开发人员覆盖错误消息: 

<%= Html.ValidationMessage("EventDate","*") %> 

上述代码输出:<span class="field-validation-error">*</span>,而不是默认的错误信息。

Html.ValidationSummary() 辅助方法接收一个可选的字符串参数 – 定义一个概括性的错误消息,并显示 

在所有详细错误信息的前面: 

<%= Html.ValidationSummary("Please correct the errors and try again.") %>

posted on 2011-01-29 21:48  cw_volcano  阅读(328)  评论(0编辑  收藏  举报