EF执行连接查询
ef4.1执行连接查询?什么时候执行左连接? 什么时候执行内连接? ef 根据什么去判断? 当我们做多表查询时 用Include 强制加载 或用 select 去查询时 发现生成的SQL语句 有时是左连接 有时是inner join。 其实EF是根据我们实体类的连接字段 是否可空来判断的~比如外键 studentID public Nullable<int> StudentID { get; set; } 是否可空 就会造成 是 left join 还是 inner join~~ 补充下~~ 有个朋友说 这个设为空了 依然执行的是内连接啊~ 注意看下你的关系那块 也要设为可空 用这个 HasOptional 而...
EF常见报错信息
新手使用ef4.1 常见的一些报错信息 1.执行命令定义时出错 出现这个错的原因有很多 数据库语句错误 我们可以先通过监测SQL 语句是否发送到数据库 然后执行这条SQL语句 看看是否有问题 造成这个错的原因 还有可能是 连接对象一直被占用 因为EF有延迟加载 只是select时 并没有真正去数据库执行 我们可以先把前面的查询语句 tolist等 再去执行下面的操作 2. System.Data.Edm.EdmEntityType: : EntityType“Enrollment”未定义键。请为该 EntityType 定义键。 System.Data.Edm.EdmEntitySet: EntityType: EntitySet �E...
.NET Remoting系列 :信道
信道(Channel)是 Remoting 体系的承载平台,负责处理客户端和服务器之间的通讯,其内容包括跨域通讯、消息传递、对象编码等等。信道必须实现 IChannel 接口,根据通讯方向又分别提供了继承版本 IChannelReceiver 和 IChannelSender。Remoting 框架为我们提供了 IPC、TCP 以及 HTTP 的实现版本,当然我们还可以在网络上找到其他协议的实现版本。 TcpServerChannel channel = new TcpServerChannel(801); ChannelServices.RegisterChannel(channel, false); 我们可以使用实用类 ChannelServices 来管理程序域内的信...
ASP.NET Cache缓存技术详解
缓存是在内存中存储很耗时创建的数据的一项技术,也是ASP.NET一个重要特性。例如,你可以缓存那些耗时的复杂查询出来的数据,之后的请求不必再从数据库中取数,直接从缓存中取。通过缓存,可以大大提高应该程序的性能。 主要有两种缓存类型: 1.输出缓存 2.数据缓存 1. Output Caching(输出缓存) 使用输出缓存,可以缓存页面最终的生成的HTML。当同一个页面再次请求时,缓存页起作用。ASP.NET不再执行页面的生命周期和相关代码。输出缓存的语法: 1 <%@ OutputCache Duration=”60” VaryByParam=”None” %...
Remoting 生存期租约
Remoting 采取了一种称之为 "租约" 的机制来管理远程对象(Singleton、CAO)的生存期策略。每个应用程序域中都有一个租约管理器(LifetimeServices),它负责管理所有参与生存期的远程对象租约。租约管理器定期检查所有租约以确定过期的租约时间,如果租约已过期,将向该对象发起人(Sponsor)的发送请求,查询是否有谁要续订租约,若没有任何发起人续订该租约,租约将被移除,该远程对象也会被删除等待垃圾回收器回收。如果远程对象被发起人多次续订租约或被客户端持续调用,其生存期可以比其生存期租约长得多。 所谓发...
开放封闭原则 学习笔记
开放封闭原则,核心思想:软件实体应该是可扩展,而不可修改的。也就是说,对扩展是开放的,而对修改是封闭的。 体现在两个方面: 1、对扩展开放,意味着有新的需求和变化时,可以对现有代码进行扩展,以适应新的情况。 2、对修改封闭,意味着类一旦设计完成,就可以独立完成其工作,而不要对类进行任何修改。 == 辛辛苦苦写好的代码,测试也通过了,就不要再改了嘛,一改动就可能发生错误,或者是不希望的修改,至少还需要在测试一遍吧。如果改一处会引发好多的错误的话,那就更不要改了...
GridView实现删除、更新、取消
//数据绑定 private void InitData() { string sqlselect = ""; XmlDocument document = new XmlDocument(); document.Load(Server.MapPath("BannerList.xml")); XmlNodeList xn = document.SelectNodes("BannerList/item"); string selch = "";selch = ddlchannel.SelectedItem.Value; if ( ddlchannel.SelectedItem.Value != "-1") { sqlselect = "select picid,picdiscription,piclink,picname,uploaddatetime,picchannel,picorder,isenjoin,banner ,bannercode from ...
从原理上 预防SQL注入
第一次听说SQL注入攻击的时候还是在2004年(好像得知的比较晚),那是还是在写asp呢。在一次写代码的时候,有同事问我,你的这段代码防注入攻击了吗?什么攻击?这是什么呀。 后来到网上各种找,终于弄明白了是怎么攻击进来的了。注入攻击都是来自于客户端,无论是表单提交、URL传值还是Cookie等,其实原理都是一样的。到了服务器端可以分成三种情况:数字、日期时间、字符串。 说起防止SQL注入攻击,感觉很郁闷,这么多年了大家一直在讨论,也一直在争论,可是到了现在似乎还是没有定论。当不知道注入...
Remoting系列之远程对象
前面几篇文章,我们说到Remoting的其它几个方法,今天我们说说Remoting系列中的远程对象,对于 MBR,我们可以指定不同的激活模式。 服务器激活(Server-Activated Objects / SAO):只有在客户端调用代理对象第一个方法时才创建,区分为 Singleton 和 SingleCall 两种模式。Singleton 一如设计模式中的名称,无论有多少客户端都只有一个实例存在;而 SingleCall 则为每次调用创建一个新对象,因此它是无状态的。SingleCall 在方法调用完成后立即失效,不会参与生存期租约系统。 客户端激活(Client-Activated Object...