小编Lar*_*ken的帖子

ORM(对象关系映射)中的"N + 1选择问题"是什么?

"N + 1选择问题"通常被称为对象关系映射(ORM)讨论中的一个问题,我理解它必须为对象中看起来很简单的事情做出大量的数据库查询.世界.

有没有人对这个问题有更详细的解释?

orm select-n-plus-1

1507
推荐指数
16
解决办法
37万
查看次数

如何获取哪个页面在aspx中向Application_error抛出异常

我在我的global.asax中有一个常规异常处理程序Application_error,我试图在所有页面中隔离所有未捕获的异常.我不想使用Page_error来捕获异常,因为在很多页面上调用它是低效的.那么在异常中哪里可以找到实际导致异常的页面?

c# asp.net exception application-error

18
推荐指数
1
解决办法
1万
查看次数

防止重复使用信用卡的最佳方法

我们有一个系统,我们希望阻止为两个不同的帐户注册相同的信用卡号.由于我们不在内部存储信用卡号码 - 只是最后四位数字和到期日期 - 我们不能简单地比较信用卡号码和到期日期.

我们目前的想法是在注册卡时在我们的信用卡信息系统中存储散列(SHA-1),并比较散列以确定之前是否使用过卡.

通常,使用salt来避免字典攻击.我认为在这种情况下我们很容易受到攻击,因此我们应该将哈希值与哈希一起存储起来.

你们看到这种方法有什么缺陷吗?这是解决这个问题的标准方法吗?

hash cryptography credit-card

17
推荐指数
4
解决办法
8269
查看次数

自动更新Windows服务

我即将开发一个程序,该程序将作为Windows服务在几个客户端的后端服务器(具有Internet访问权限)上安装和运行.我没有物理访问服务器.我正在研究的是一个可靠地推出程序更新的方案.

我花了很多时间寻找Windows服务自动更新的最佳实践,但却找不到有用的信息.大多数技术,如ClickOnce,似乎主要适用于基于Windows窗体的应用程序.

我目前的计划是:

  • 更新可用时,让正在运行的服务下载,安装并启动更新服务.
  • 更新服务将下载新版本的主服务,并将其安装在当前仍处于活动状态的版本的旁边.
  • 更新服务接下来停止旧版本,然后启动新版本的服务.
  • 新版本在启动期间禁用更新服务.

对我来说一些重要的问题是:

  • 能够处理主服务和更新服务的更新
  • 能够在更新过程中的任何时候处理电源故障或连接故障等中断

我们想知道的是,这是解决这个问题的常用方法和/或我是否遗漏了任何关键问题.这太复杂了,还是太简单了?你会怎么做(或者,更好的是,你是如何成功完成的)?

谢谢!

windows-services auto-update

16
推荐指数
1
解决办法
4718
查看次数

回滚后的Session.Transaction更改(NHibernate)

我有以下代码(为了讨论而简化).我不明白的是为什么session.Transaction属性在回滚后返回不同的事务.

例如,这意味着该属性Session.Transaction.WasRolledBack几乎没有帮助,除非我存储对第一个事务的引用并检查该事务的属性.

任何人都可以提供一些见解吗?

int transId = session.Transaction.GetHashCode();

using (var tx = session.BeginTransaction())
{
   Assert.AreEqual(transId, tx.GetHashCode());

   tx.Rollback();

   Assert.AreEqual(transId, tx.GetHashCode());
   Assert.AreEqual(transId, session.Transaction.GetHashCode()); // Fails
}
Run Code Online (Sandbox Code Playgroud)

更新:

David Walschots的回答非常有用且精确.另外,我在Nhibernate文档中找到了以下内容:

如果你回滚事务,你应该立即关闭并放弃当前会话,以确保NHibernate的内部状态是一致的."

nhibernate transactions

6
推荐指数
1
解决办法
3490
查看次数

从2.0应用程序参考3.5组装?

我有一个针对.NET 3.5的程序集.

我有一个针对.NET 2.0的应用程序,并想知道我是否应该从2.0应用程序引用3.5程序集时遇到任何问题.

我知道IL应该是相同的,所以我假设它会起作用,但是想听听其他人试过这个的经验.

运行时环境将同时安装2.0和3.5.

.net assemblies reference .net-3.5 .net-2.0

5
推荐指数
1
解决办法
2074
查看次数