ASP.NET网站制作之办理Entity Framework天生"CAST AS int"SQL语句的成绩仓酷云
有时也搞不懂应该学那种;主要看你以后去的那个公司是使用哪种了。就像王千祥的课上说的:企业应用现在主要就三层(其实也差不多就是MVC):表示层(主要使用html写的,很简单)、业务逻辑层(主要就是应用服务器的)。最后就是数据层(其实就是学习数据库)在EntityFramework天生的SQL语句中,你是不是寄望过CAST的倩影:(0=CAST(.ASint))她不是那末有目共睹,她不是那末让人一眼心动,可是她值得寄望,由于她不同凡响...
之前见过量次,明天出格寄望,并放在了博问中,以吸引更多人的注重,同时也加深本人的注重。
底本希冀的SQL语句是:
.=0如今多了个CAST。多了个CAST有甚么干系呢?它会使得如许的SQL查询不会利用创建在LockFlag上的索引(因为是smallint列,多半情形下不必索引影响也不年夜)。
明天,在猎奇心的使令下,我想晓得为何会呈现这个成绩?在博问中提出成绩以后,终究找到了谜底。
(感悟:将成绩经由过程笔墨明晰地表达出来,成绩就办理了一半)
LockFlag在数据库界说的范例是smallint,以是在界说实体类时,天经地义地用short(或int16)。
可是EntityFramework的设法却不同凡响,它只需碰到short(或int16)范例,就会天生CAST转换为int举行查询。
办理办法:
将short(或int16)范例改成int范例。
该办理办法存在成绩,在where查询中切合请求,但在映照时呈现毛病:
System.InvalidOperationException:TheLockFlagpropertyonArticlecouldnotbesettoaInt16value.Youmustsetthispropertytoanon-nullvalueoftypeInt32.
前天傍晚我发表了《net网页编程的跨平台就是一句谎言。》,原本就是周末闲来无事,发表一篇略带争议性的博文让大家都来吵吵架,发表自己的看法,根本就没想着谁把谁打倒,一个行业或者是技术阵营是无法用短期口水仗打到对手的。 有一丝可惜的是,这个系列太强了,Java阵营的朋友根本就是哑口无言...争论之火瞬间被浇灭,这不是我想这么早就看到的,但是值了。 最强的技术支持WebService,而且有.NET的所有library做后盾。而且ASP.NET在.NET3.5中还有微软专门为AJAX开发的功能--ASP.NETAJAX。 CGI程序在运行的时候,首先是客户向服务器上的CGI程序发送一个请求,服务器接收到客户的请求后,就会打开一个新的Process(进程)来执行CGI程序,处理客户的请求。CGI程序最后将执行的结果(HTML页面代码)传回给客户。 关于ASP.NET功能上,ASP.NET比微软以前的ASP(96年出现)有更强大的library,更好的稳定性。ASP.NET可以使用.NETFramework中所有组件(也就是说.NET能实现的,ASP.NET一样能实现)。 有一丝可惜的是,这个系列太强了,Java阵营的朋友根本就是哑口无言...争论之火瞬间被浇灭,这不是我想这么早就看到的,但是值了。 是目前ASP在UNIX/Linux上的应用可以说几乎为0)。所以平台的局限性和ASP自身的安全性限制了ASP的广泛应用。 Asp.net脚本的出现,为ASP空间带来了更高的稳定性,同时也为程序员建站提供更高环境! 但是目前在CGI中使用的最为广泛的是Perl语言。所以,狭义上所指的CGI程序一般都是指Perl程序,一般CGI程序的后缀都是.pl或者.cgi。 通过这次激烈的讨论,我从大家身上学到了太多,开阔了眼界,不管是支持我的还是骂我的,都感谢你们。 由于JSP/Servlet都是基于Java的,所以它们也有Java语言的最大优点——平台无关性,也就是所谓的“一次编写,随处运行(WORA–WriteOnce,RunAnywhere)”。除了这个优点,JSP/Servlet的效率以及安全性也是相当惊人的。 Asp.net:首先来说,Asp.net和Asp没什么关系,看着像是升级版本什么的,其实没什么联系。Asp是脚本编程,用的是ASP语言,而ASP.net用的是C#语言,完全不同的东西。 asp.net空间的支持有:ASP.NET1.1/虚拟目录/MicrosoftFrontPage2000扩展/CDONTS,同时他的网站上也提供了Asp.net的使用详解和程序源代码,相信对使用ASP.NET编程的程序员来说会非常有用哦! Servlet的形式和前面讲的CGI差不多,它是HTML代码和后台程序分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process)。 这也就是最近几年来随着各种新的后台技术的诞生,CGI应用在Internet上越来越少的原因。CGI方式不适合大访问量的应用。
页:
[1]