2017-05-25 29 views
-1

我無法初始化或編輯模型ID。如何讓模型ID在asp mvc中可插入和可編輯?

這是我的模型,每個值都有一個特定的ID。例如,id = 11的值爲「computer」,但我無法初始化我的模型ID。當我發佈ID = 11和值=「計算機」數據庫設置值爲1,並增加它爲下一個值。

public class Faculty 
    { 
     [Key] 
     public int Id { get; set; } 
     public string value { get; set; } 
     public override string ToString() 
     { 
      return value; 
     } 
    } 

數據庫表的定義是這樣的:

CREATE TABLE [dbo].[Faculty] (
    [Id] INT   IDENTITY (1, 1) NOT NULL, 
    [value] NVARCHAR (MAX) NULL, 
    CONSTRAINT [PK_dbo.Faculty] PRIMARY KEY CLUSTERED ([Id] ASC) 
); 

我應該如何改變我的模型,使我的模型ID插入?

+0

身份列ID是問題。您需要刪除身份 – ISHIDA

+0

@ISHIDA我不想更改表格SQL defenition我想從我的模型代碼中進行更改。 –

回答

1

刪除表並重新創建它。

CREATE TABLE [dbo].[Sexes] ([Id] INT NOT NULL, [value] NVARCHAR (MAX) NULL, CONSTRAINT [PK_dbo.Sexes] PRIMARY KEY CLUSTERED ([Id] ASC) );

如果你希望你的EF更新的ID,你可以做這樣的

`using (var dataContext = new DataModelContainer()) 
using (var transaction = dataContext.Database.BeginTransaction()) 
{ 
var user = new User() 
{ 
ID = id, 
Name = "John" 
}; 
dataContext.Database.ExecuteSqlCommand("SET IDENTITY_INSERT [dbo].[User] OFF"); 
dataContext.User.Add(user); 
dataContext.SaveChanges(); 
dataContext.Database.ExecuteSqlCommand("SET IDENTITY_INSERT [dbo].[User] ON"); 
transaction.Commit(); 
}` 

一些事情,如果你想使用dataannotation型號試試這個 -

public class MyEntity { 
    [DatabaseGenerated(DatabaseGeneratedOption.None)] 
    public int Id { get; set; }   
} 
+0

問題不在於SQL是關於實體框架ORM。 –

+0

我已經更新了模型中的答案,您可能需要關閉身份並保存記錄並重新開啓。 – ISHIDA

+0

你的答案似乎不錯,但是有沒有DataAnnotations爲我的模型ID字段設置身份假? –

相關問題