个人做asp.net时犯过的错或是一点心得什么的(我就经常的更新一下吧)

本文介绍了Linq查询中OrderBy方法的使用注意事项,避免因顺序不当导致的排序BUG;探讨了Membership Profile的一些局限性及建议解决方案;分享了枚举设计时预留扩展空间的最佳实践;并解决了ASP.NET 3.5 AJAX部署时遇到的“ASP.NET Ajax客户端框架未能加载”的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、Linq中,.Where(predicate).OrderByDescending(b => b.Id).OrderByDescending(b => b.IsTop).ToList()这里面的OrderBy()一定要小心,是存在先后顺序的,后写的OrderBy()会先生成在sql语句中。如果不注意,会造成顺序的颠倒,从而引出排序的BUG,这种BUG可以用SQL事件探查器查出来。

以上语句生成的SQL是“where xxxxxxxx order by IsTop desc,Id desc”。

 

2、不要太相信Membership的Profile,它有时不能取出对象,很诡异。建议自己做强类型的身份信息,而不要在web.config中配置那些字段。我至今无法解释,只能说是RP问题。

 

3、枚举在编码时记得留下扩展的空间,特殊形式的放在前面。例如

Code
/// <summary>
/// 单位类型
/// </summary>
public enum BranchType
{
/// <summary>
/// 其他
/// </summary>
Other = 0,
/// <summary>
/// 学校
/// </summary>
School = 1,
/// <summary>
/// 机关
/// </summary>
Government = 2,
/// <summary>
/// 企事业单位
/// </summary>
Corporation = 3,
}

这个Other就放在0位,其实目的也很单纯,如果放在最后,万一客户说要加一个,加在Other后面搞的好丑陋啊。

 

4、关于asp.net3.5 ajax部署时“Error:ASP.NET Ajax 客户端框架未能加载”的错误

原因是部分虚拟主机默认的没有打开.axd文件的解析,造成脚本资源等文件无法生成,类似以下的东东无法工作:

<script src="/WebResource.axd?d=65Ia2ddeYx8IU6vULCb8TQ2&amp;t=633435259615117500" type="text/javascript"></script>

解决方法:
在IIS中增加对.axd文件的解析处理,注意要取消“确认文件是否存在”。
2008092411402542.jpg

转载于:https://www.cnblogs.com/killuakun/archive/2008/09/05/1285210.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值