我正在对vs 2010和EF 4.1与SQL服务器数据库。 下面提到的代码适用于本地SQL服务器数据库(SQL 2008)。此版本的SQL Server不支持没有聚簇索引的表
但是,当我发表了Windows Azure云和SQL Azure的它给下文提到的错误 MVC应用。
- 为什么这个错误是只返回SQL Azure的(与桌面SQL Server 2008中工作)?
- 如何摆脱这个?
我的库代码示例如below.Below提到的错误呼叫 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."}
堆栈跟踪是像下面
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)
Thanks.When创建工作一个主key.Its。 ALTER TABLE [dbo]。[RetailSaleReturns] ADD PRIMARY KEY([Id]) – Sampath
此外,有一点需要牢记,不能在表中留下索引而不留下索引。 –