代码之家  ›  专栏  ›  技术社区  ›  Martin

我不知道的数据库缓存?

  •  1
  • Martin  · 技术社区  · 16 年前

    我正在使用asp.NETMVC、linq2sql、iis7和SQLServerExpress 2008。

    我得到这些间歇性的服务器错误,主键插入冲突。我正在开发计算机上使用不同的设置,因此无法调试。过了一会儿他们就走了。重新启动iis有帮助。我觉得有一个我不知道的地方。有人能帮我整理这些错误吗?

    无法在具有唯一索引“IX\u EnquiryType”的对象“dbo.EnquiryType”中插入重复的键行。

    关于Venemos答案的编辑

    另一个应用程序是否可能同时访问同一个数据库? 有,但不是这个表,也没有插入或更新。还有一个表,我遇到了同样的问题,但它与模型的不同部分有关。

    在什么上下文中创建新DataContext实例的频率是多少?

    主键是由数据库生成的还是由应用程序生成的? 数据库。

    您使用的是哪个版本的ASP.NET MVC和哪个版本的.NET? RC2和3.5。

    2 回复  |  直到 16 年前
        1
  •  1
  •   Neil Moss    16 年前

    两个猜测:

    DataContext的MSDN引用说实例“设计为持续一个工作单元”,通常是“在方法范围内或作为短期类的成员”创建的。

    2) 当您说您的密钥是由数据库生成的,是通过标识字段生成的,还是某种“selectmax+1”模式?如果不是通过标识,那么您可能有获得相同“next”键值的并发连接。检查事务隔离级别。

    您确定索引冲突在 主键 前缀,和 用于进一步索引。检查组成“IX_inquirytype”的字段,确保它不仅仅是一个罕见的逻辑问题导致了您的问题。

        2
  •  1
  •   Venemo    16 年前

    嗯,可能有很多原因。我会问你一些问题。请编辑您的问题与这些信息,它将更直接地为我们提供帮助。


    • 在什么上下文中创建新DataContext实例的频率是多少?
    • 主键是由数据库生成的还是由应用程序生成的?