2014-01-15 121 views
0

我之前從事過一個項目。數據庫是Access。我將它轉換爲SQL Server(使用數據)並使用Entity Framework 4.4(數據庫優先),一切正常。最近,我們需要添加更多的表格,向現有表格添加一些列,併爲這些表格添加一些外鍵。現在,我刪除.edmx和.tt文件,dd由於某些原因使用新數據庫的新.edmx,幾個外鍵在表中不顯示爲導航屬性。爲什麼導航屬性丟失?

現在,如果我再次將Access轉換爲無數據的SQL,請進行相同的數據庫模式更改,刪除舊項目中的.edmx和.tt,然後添加新的.edmx文件,奇怪的是,會顯示更多導航屬性,但還不是全部。

我也升級到實體5和6.0.1,結果相同。

以前任何人都有過同樣的問題?任何可能導致這種情況的線索?以及如何解決它?

回答

0

我想通了。這是因爲Access在某些列上有一些索引。一個索引就像表格的ID。在轉換爲SQL之後,索引仍然存在於ID列上,並且我在轉換中在該列上創建了一個PK,然後在其他表上指向此PK的FK。所以,現在,該列有2個索引,一個是獨特的非集羣,另一個是集羣。也許實體框架不喜歡這個?

我刪除唯一的非聚集索引後,它現在工作正常。

也許有人知道更多關於它的重要性。

謝謝