2014-06-19 85 views
1

我工作的C#MVC 4 Web應用程序我如何使ID自動增量和隱藏從用戶?

我創建鏈接到DB一個頁面,我的問題是,在創建新的記錄,用戶可以輸入ID,姓名,...

我怎樣才能隱藏在用戶的ID視圖,並使其採取一個自動增量的數字,例如當用戶去頁面創建新的他將不得不開始填寫名稱,地址...沒有看到必須的ID字段自動取號的值:

這裏是我的模型代碼:

public partial class Employee 
{ 
    public int Identifier { get; private set; } 
    public string Name { get; set; } 
    public string Address { get; set; } 
    public string Status { get; set; } 
} 

回答

0

編輯視圖並從中刪除ID部分,然後它取決於您如何設計數據庫,如果您有自動增量,否則您應該在控制器中進行管理。 Matteo

-1

通常您使用Guid來表示一個ID。原因是你無法知道最後一個插入的實體的最後一個ID(在你的Employee中)。爲了找到它,你將它插入到數據庫中(讓數據庫處理增量),數據庫服務器用遞增的ID作出響應。

要知道插入實體的確切ID,請使用GuidGuid是一個非常大的整數,與另一個插入的Guid相比,具有很小的機會。因此,您不必等待數據庫使用插入的ID進行響應。

請注意,您不能將Guid強制爲int。你必須改變字段類型。

+0

Guid不是一個整數並且作爲OP的註釋,該列的默認值可以設置爲NewID() – Silvermind

+0

@Silvermind這是來自MSDN的一個GUID是一個128位整數(16字節)的可以在需要唯一標識符的所有計算機和網絡中使用。這樣的標識符被複制的可能性非常低。「http://msdn.microsoft.com/en-us/library/system.guid.aspx我還建議一個更好的方法。 – dburner

+0

我從來沒有注意到msdn上的這句話,但這樣說很讓人困惑。我不會說msdn在這裏是錯誤的,但它會更清楚地表示它是否表示128位整數。 – Silvermind

0

使用AutoIncrement數據庫字段。 Here are some common ways to do that

如果你的INSERT INTO語句之後,你想要得到的ID數據庫生成把

SELECT SCOPE_IDENTITY(); 

爲SQL Server返回其生成的ID。

+0

.... 0r使用像Entity Framework這樣的ORM,它會在保存後自動返回對象中新插入的「ID」.... –

1

您應該讓DB處理Id增量。如果您需要用於商業運作,我會將該ID設置爲私密。但是你可以從視圖中刪除它。