0

我有一個數據庫在azure需要聚集索引。我想使用Entity-Framework 6 Alpha 2,因爲我想使用新的異步功能。當我使用SQL Express 2012在本地計算機上測試時,一切正常,但是當我使用我的azure數據庫嘗試它時,出現以下錯誤:現有的Azure數據庫與實體框架6阿爾法2

此版本的SQL Server不支持沒有聚集索引的表。請創建聚集索引並重試。

我不知道該怎麼做,因爲當我測試它與一個空的數據庫每個主鍵是一個聚集索引。

任何想法?

回答

0

您是否願意通過「Windows Azure上的現有數據庫」和EF 6一起使用來說明您的情況?首先 - 你使用EF CodeFirst,ModelFirst,DatabaseFirst? 那麼如果你真的有現有的數據庫,你是如何創建它? DB + Schema,使用一些嚮導(SSMS,SQL Azure遷移向導,EF CodeFirst創建它,等等)。現有的數據庫如何在Azure中結束?

然後追查完整的錯誤消息,檢查它發生在哪個表上,並在該表上手動添加聚簇索引。確實,在SQL Server中創建的每個主鍵,默認情況下都是一個CLUSTERED。但是,如果表是首先創建的,那麼主鍵被添加爲單獨的DDL語句(ALTER TABLE ....),它可能沒有被創建爲CLUSTERED。

所以,信息很清楚 - 請先創建聚簇索引。找出SQL Azure抱怨哪個表並在其上創建聚集索引。如果它沒有主鍵,只需添加一個爲CLUSTERD:

ALTER TABLE [dbo].[Individual] 
ADD CONSTRAINT [PK_Individual_CustomerID] 
PRIMARY KEY CLUSTERED 
(
[CustomerID] ASC 
) 

如果它有一個主鍵 - 檢查所包含列,刪除它,然後重新創建爲羣集。