微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

asp.net-mvc-3 – 此版本的SQL Server不支持没有聚集索引的表

我正在使用vs 2010和EF 4.1与sql Server数据库
下面提到的代码在本地sql Server DB上工作正常(sql 2008)。

但是当我发布了Windows AZURE云和sql Azure的MVC应用程序时,它给出了下面提到的错误

>为什么这个错误只返回sql Azure(使用桌面sql Server 2008)?
>如何摆脱这个?

我的存储库代码示例如下所示。下面提到的错误调用时出现
Catalog.SaveChanges()方法

using (var catalog = new DataCatalog())
{
    var retailSaleReturn = new RetailSaleReturn
    {
        ReturnQuantity = returnQuantity,Product = saleDetailObj.Product,Owner = owner,Provider = provider,};

    //add to context
    Catalog.RetailSaleReturns.Add(retailSaleReturn);

    //save for db
    Catalog.SaveChanges();
}

dbupdateException如下所示:

{"An error occurred while saving entities that do not expose foreign key properties for their relationships. The EntityEntries property will return null because a single entity cannot be identified as the source of the exception. Handling of exceptions while saving can be made easier by exposing foreign key properties in your entity types. See the InnerException for details."}

InnerException如下所示:

{"Tables without a clustered index are not supported in this version of sql Server. Please create a clustered index and try again."}

StackTrace如下所示

at System.Data.Entity.Internal.InternalContext.SaveChanges()
   at PawLoyalty.Data.Repositories.CustomersRepository.ReturnRetailOnlySales(Guid saleDetailId,Int32 returnQuantity,String providerKey,String ownerKey) in D:\PawLoyalty Module\PawLoyalty\PawLoyalty\PawLoyalty.Data\Repositories\CustomersRepository.cs:line 550
   at PawLoyalty.Web.Areas.Providers.Controllers.CustomersController.ReturnRetailOnlySales(String providerKey,String ownerKey,String petKey,Guid saleDetailId,Int32 returnQuantity) in D:\PawLoyalty Module\PawLoyalty\PawLoyalty\PawLoyalty.Web\Areas\Providers\Controllers\CustomersController.cs:line 942
   at lambda_method(Closure,ControllerBase,Object[] )
   at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext,IDictionary`2 parameters)
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext,ActionDescriptor actionDescriptor,IDictionary`2 parameters)
   at System.Web.Mvc.ControllerActionInvoker.<>c__displayClassd.<InvokeActionMethodWithFilters>b__a()
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter,ActionExecutingContext preContext,Func`1 continuation)

解决方法

您需要在要添加行的sql Azure中的所有表上创建一个聚簇索引;否则insert语句总是失败。

CREATE UNIQUE CLUSTERED INDEX Idx_TableName ON TableName(yourGUIDColumn);

以下是对这些指标的一般准则和限制的引用:MSDN Link

这是另一篇文章,解释了这个原因:link

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


这篇文章主要讲解了“WPF如何实现带筛选功能的DataGrid”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“WPF...
本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这...
Some samples are below for ASP.Net web form controls:(from http://www.visualize.uk.com/resources/asp
问题描述: 对于未定义为 System.String 的列,唯一有效的值是(引发异常)。 For columns not defined as System.String, the only vali
最近用到了CalendarExtender,结果不知道为什么发生了错位,如图在Google和百度上找了很久,中文的文章里面似乎只提到了如何本地化(就是显示中文的月份)以及怎么解决被下拉框挡住的问题,谈
ASP.NET 2.0 page lifecyle ASP.NET 2.0 event sequence changed a lot since 1.1. Here is the order: App
静态声明: &#39; Style=&quot;position: relative&quot; AppendDataBoundItems=&quot;True&quot;&gt; (无 或 空 或
以下内容是从网络上搜集资料,然后整理而来的。不当之处,请不吝指教。(The following were from network, and edited by myself. Thanks in a
Imports System Imports System.Reflection Namespace DotNetNuke &#39;*********************************
Ok so you have all seen them: “8 million tools for web development”, “5 gagillion tools that if you