我們使用一個基本實體,它具有版本(NHibernate需要的日期時間)和guid(作爲鍵)等屬性。使用Int64而不是int來代替int(C#)
它也有一個Id(int)字段有兩個函數。首先要關聯遺留應用程序密鑰(如果有的話)。其次,作爲一個簡寫代碼:例如有時創建文件基於這些看起來醜陋和長期使用我們的GUID鍵。我的問題不是關於基礎實體的利弊,而是關於將這個Id提升到Int64的問題?
它不會影響它在我們的MS SQL Server數據庫中的存儲方式。我們的緩存和內存會有更多的費用嗎?這真的是一個擔心嗎?
我有興趣聽到除性能以外的其他缺點。也考慮到這些價值觀可能會通過網絡服務及時暴露給第三方。
另一種方法是處理大整數的異常,因爲它們在派生實體中出現並實現它們。其缺點是需要在代碼中完成,當我們發現生產大整數時的某些情況時,我們會做什麼?當然會有輸入驗證來阻止實際錯誤,但它可能會限制擴展數據。
可移植性問題在哪裏?我不是說沒有一個人,只是對它可能在哪裏感到困惑。我不能輕易想到一個沒有64位整數類型的通用平臺。 – 2008-10-28 11:23:49
我想說,如果所有平臺都基於公共語言規範實現它們的類型,那就不應該成爲問題。或者我錯了? – lowglider 2008-10-28 12:14:16