我想在我的模型中實現GUID作爲主鍵。我使用模型優先的方法,並且我希望GUID
不是在數據庫中生成的,而是在.NET服務器中生成的。實體框架:使用GUID作爲主鍵
我見過一個解決方案,說我將不得不爲每個類做到這一點:
public class TestObject
{
public TestObject()
{
Id = Guid.NewGuid();
}
public Guid Id { get; set; }
}
的問題是:我不認爲這是一個乾淨的解決方案,將其應用到每一個我有班級。
而我沒有POCO類,因爲我使用的是模型優先。
那麼,我該怎麼辦?這是最好的方法,你覺得呢?有什麼建議?
讀金Tripp的[GUID的SQL Server中的主鍵和聚集鍵(http://www.sqlskills.com/blogs/kimberly/guids-as-primary-keys-andor-the-集羣的關鍵/)。從數據庫管理員的角度來看,作爲PK的GUID是一個**非常糟糕的選擇,由於大規模的碎片化,因此產生了巨大的負面性能影響。如果你有設計一個新的數據庫系統的麻煩 - **不要**使用GUID作爲你的主鍵! –
我不太確定如何使用guid作爲PK:我認爲有幾個優點。當我必須合併來自不同dbs(銷售隊伍應用程序中的訂購表)的類似表格時,我沒有來自不同dbs的記錄,它們必須重新組織相同的PK,並且如果我在Web應用程序中公開PK(查詢字符串等)我有一個更好的安全性,成本爲0,因爲猜測其他記錄比較困難,當你看到PK是典型的自動增量整數時,事情就容易多了。你不能以此爲基礎的安全性,但成本爲0。 –
我想使用GUID,因爲Luca在說什麼...... 我知道它沒有更好的性能,但我需要這樣做。你有沒有人知道我該怎麼做我在問什麼? –