0

我有一種方法註冊一個新用戶使用WebSecurity.CreateUserAndAccount(model.UserName, model.Password)問題是,在UserProfile模型中,我添加了一個GUID密鑰。在我的本地機器上,當我調用這個方法時,這隻會填充一個空的Guid。在Azure不過,我得到以下錯誤:Websecurity.CreateUserAndAccount在Azure上不起作用

System.Data.SqlClient.SqlException (0x80131904): Cannot insert the value NULL into column 'Key', table 'Scheduler.dbo.UserProfile'; column does not allow nulls. INSERT fails. 

現在,我已經試過在模型的構造函數生成一個新的GUID,手動有Set{}生成新的GUID,我也得到了同樣的錯誤。

當我嘗試使用CreateUserAndAccount過載,如:

WebSecurity.CreateUserAndAccount(model.UserName, model.Password, new { Key = Guid.NewGuid() }); 

我碰到下面的語法錯誤(運行時間):

Incorrect syntax near the keyword 'Key'. 

我已經花了上午的很大一部分努力弄清楚這一點,我不能。順便說一下,所有上述方法仍導致一個空的GUID 00000000-0000-0000-0000-000000000000和重載給我在我的本地機器上的語法錯誤。

+0

我解決了這個問題,只是做一個toString即Guid.NewGuid()。toString() –

+0

@AshleyMedway你使用了哪種方法,並且該屬性接受一個GUID,所以我不能給它一個字符串。 – hjavaher

+0

將屬性更改爲字符串,也是Key是一個關鍵字,因此重命名類似於UserID的關鍵字 –

回答

0

「鑰匙」是SQL保留字,應該用括號像這樣使用[關鍵]

既然你沒有對如何WebSecurity生成的SQL查詢,然後你唯一的選擇是重命名控制它像UserKey

相關問題