ASP.NET网页编程之Entity Framework 理论系列 ―― 弄好干系 - 两情相悦(双向一对一,one-to-one)- 续 ...
2003年中微软发布最新版本的ASP.netWebMatrix,对于我们喜欢用Asp.net来编程的朋友实在是个好消息,我也实实在在的将Asp.net更深入的研究了一下,以方便我以后更好的运用它,同时我也讲讲使用它的感受。在上篇文章中,我们经由过程WithRequiredDependent或WithRequiredPrincipal完成了“双向一对一”干系,可是EntityFramework天生的SQL语句很糟。在上篇文章公布一个多小时以后,我们找到懂得决之道。这就是写博客带来的优点,逼着你静下心来深切思索。
成绩的缘故原由在于我们向EntityFramework传送了分歧道理的“一对一”干系信息,把EntityFramework弄得蒙头转向。BlogSite中有UserID,BlogUser中却没有BlogID,这是一个不屈等的“一对一”。“两情相悦”原本就是互相的、同等的,不存在谁依附谁、谁主宰谁。汉子心中有恋爱暗码,女工资甚么不克不及有?汉子自动寻求女人,女工资甚么只能主动挨追?两情相悦是两颗心的交互,谁先感到到,谁就自动些。
我们先回忆一下之前不屈等的两情相悦(一对一干系):
注:BlogUser类中短少BlogID属性,BlogUser表中短少BlogID字段。
看看真实的两情相悦:
注:BlogUser类增添了BlogID属性,BlogUser表中增添了BlogID字段,其他都没动。
然后在OnModelCreating中经由过程FluentAPI举行以下界说:
modelBuilder.Entity<BlogSite>().HasRequired(b=>b.BlogUser).WithMany().HasForeignKey(b=>b.UserID);modelBuilder.Entity<BlogUser>().HasRequired(u=>u.BlogSite).WithMany().HasForeignKey(u=>u.BlogID);
运转测试,看看是不是真的两情相悦了:
测试经由过程!
接着,我们要看一看是不是是完善的“两情相悦”。翻开ServerServerProfiler,揭开“两情”的真理:
猎取一个BlogSite列表时实行的SQL:
SELECT.AS,.AS,.AS,.AS,.AS,.AS,.ASFROM.ASINNERJOIN.ASON.=.WHERE1=.
取一个BlogUser列表时实行的SQL:
SELECT.AS,.AS,.AS,.AS,.AS,.AS,.ASFROM.ASINNERJOIN.ASON.=.
这才是完善的两情相悦!这才是“双向一对一”干系的完善完成!
在经过全球个人PC市场占有90%的微软对asp.net不断优化与整合后,asp.net与微软自身平台的动用上更加的高效,加上asp.net在应用上非常容易上手,相信asp.net仍会是最多客户选用的脚本语言,并会在未来几年继续领跑。 ASP.NET:ASP.net是Microsoft.net的一部分,作为战略产品,不仅仅是ActiveServerPage(ASP)的下一个版本;它还提供了一个统一的Web开发模型,其中包括开发人员生成企业级Web应用程序所需的各种服务。ASP.NET的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。 它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。 微软又推出ASP.NET。这不是ASP的简单升级,而是全新一代的动态网页实现系统,用于一台WEB服务器建立强大的应用程序。是微软发展的新体系结构.NET的一部分,是ASP和.NET技术的结合。 逐步缩小出错代码段的范围,最终确定错误代码的位置。 在一个项目中谁敢保证每天几千万甚至几亿条的数据不丢失?谁敢保证应用的高可靠性?有可以借签的项目吗? 使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行,用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。 主流网站开发语言之PHP:PHP的全名非常有趣,它是一个巢状的缩写名称——“PHP:HypertextPreprocessor”,打开缩写还是缩写。PHP是一种HTML内嵌式的语言(就像上面讲的ASP那样)。而PHP独特的语法混合了C,Java,Perl以及PHP式的新语法。它可以比CGI或者Perl更快速地执行动态网页。 业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。 ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码。 主流网站开发语言之PHP:PHP的全名非常有趣,它是一个巢状的缩写名称——“PHP:HypertextPreprocessor”,打开缩写还是缩写。PHP是一种HTML内嵌式的语言(就像上面讲的ASP那样)。而PHP独特的语法混合了C,Java,Perl以及PHP式的新语法。它可以比CGI或者Perl更快速地执行动态网页。
页:
[1]