Problem:
Cannot insert the value NULL into column 'RoleId', table 'SCV.dbo.aspnet_Roles'; column does not allow nulls. INSERT fails. The statement has been terminated
Açıklama:
Asp.Net, varsayılan üyelik veritabanı (regsql) ve roles sınıfı kullanımında, çok katmanlı bir yapı kullanılmaktadır. Kullanıcı yukarıdaki problemde Roles.CreateRole("RolAdi") komutu ile veritabanı aspnet_Roles tablosuna yeni bir kayıt eklemek istemektedir ancak RoleId değeri null değerleri kabul etmemektedir. Bu mekanizmada aslında RoleId değerinin veritabanı tarafından default olarak eklenmesi gerekmektedir ancak regsql'in hatalı kurulumlarında ya da aktarımlarında default value değerleri kaybolabilmektedir. Dolayısıyla tablonun RoleId için default value değerlerini otomatik vermesi sağlanmalıdır.
Çözüm:
İlgili veritabanı içerisinde aşağıdaki yordamın çalıştırılması ile default değerler yeniden eklenir hale getirilebilir.
alter table aspnet_Roles
alter column RoleId add ROWGUIDCOL
ALTER TABLE aspnet_Roles
ADD CONSTRAINT DF_RoleId DEFAULT newid() FOR RoleId