2016-02-09 94 views
-2

我有要求將數據插入到數據庫中,其中主鍵在表中存在。但它不一定是標識列。我想創建自己的。我已經裝飾了我的ID屬性具有屬性「DatabaseGeneratedOption.None」。 [Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] public int TestID { get; set; }我的查詢是我需要生成id的地方。它在控制器中嗎? 或者我已閱讀關於GUID。我是否需要將我的ID定義爲GUID?哪種方法最好?我工作的MVC 4,實體框架代碼第一種方法`如何創建標識列

+1

你應該生成你的ID之前保存環境的變化。但使用int可能會出現重複鍵的問題,並且更好的選擇是使用GUID。爲什麼當你只需要設置下一個int爲ID,你不想使用自動生成的密鑰? – Sousuke

+0

你的問題很混亂。你說你想要一個身份專欄,然後你明確地說這不是你想要的。也許關於您嘗試解決的問題的更多信息將有所幫助。什麼需要完成?爲什麼你不能使用標準的標識列? –

回答

0
var Query = db.Database.SqlQuery<decimal>("Select isnull(Max(" + FieldName + "),0) from " + TableName).ToList(); 

if (Query.FirstOrDefault() == 0) 
    row = 1; else 
    row = Query.FirstOrDefault() + 1; 

我使用這種方法來生成該表的一個新的密鑰,

+0

它工作完美 – jubi