2010-03-09 33 views

回答

4

EF4支持任何後端服務器支持:

  • IDENTITY列或GUID列用默認值(NEWID()NEWSEQUENTIALID()),在SQL Server
  • 序列在甲骨文
  • 什麼目標數據庫可能提供的其他機制

就我所知,EF4本身沒有任何內置的支持生成器。

我不確定如果做這個ORM的責任是一個好主意,老實說。在我看來,這應該留給後端商店來處理。

但是,在.NET代碼中實現自己的自定義ID生成器時應該沒有問題,並且如果希望這樣做,請將其插入到EF4中。

+2

我很欣賞有關EF4不支持ID生成器這一事實的信息。然而,-1爲了掩蓋這個不足,並提出了一個不知情的觀點。實際上,客戶端ID生成是有效實現斷開連接,分佈式和/或同步系統的唯一方式。讓數據存儲生成標識符往往是不必要的,有時也是不可能的。 – joshperry

+0

同意joshperry。另外,服務器端的ID生成使得不可能實現語句批處理。通過批處理,通過ORM進行的大量插入操作幾乎可以和純ADO.NET代碼一樣快。 –