私はvs 2010とEF 4.1でSQLサーバーデータベースに取り組んでいます。以下のコードは、ローカル SQL サーバー DB で正常に動作します (SQL 2008)。
しかし、Windows AZURE クラウドおよびSQL Azure用の MVC アプリケーションを公開すると、以下のエラーが発生します。
- このエラーがSQL Azure (デスクトップ SQL サーバー 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)