我有一個MVC站點使用包含所謂的「組織」的對象,如下代碼首先遷移:設置默認值 - 回填數據庫
public class Organisation
{
public int Id { get; set; }
public string Name { get; set; }
public string Code { get; set; }
public virtual ICollection<Contact> Contacts { get; set; }
public virtual ICollection<Location> Locations { get; set; }
public UserPermissions Permissions { get; set; }
}
我想實現用戶權限爲每個我的網站上的區域。作爲結果,權限屬性已經在上面被新添加的並且是類型UserPermissions的目的:
public class UserPermissions
{
public PermissionLevel Contacts { get; set; }
public PermissionLevel Messages { get; set; }
public PermissionLevel Groups { get; set; }
public PermissionLevel Data { get; set; }
}
凡PermissionLevels是定義爲一個枚舉:
public enum PermissionLevel
{
Locked = 0,
View = 1,
Administrator = 2
}
感覺的結構這個實現很好,並且在添加遷移時,EF會在每個權限類型(Permissions_Contacts,Permissions_Messages等)的dbo.Organisations表中創建一個列。
數據庫但已經有很多機構,我想知道是否有徵收默認的方式。如果我現在更新了我的數據庫,所有權限都將爲0(鎖定),但是我希望每個權限類別的默認值不同。聯繫人/消息/組的管理員權限和數據的鎖定權限,因爲數據將在用戶請求時進行設置。
我很快將功能添加到創建組織的站點的管理層,並且爲所有區域選擇UserPermissions爲強制選項,但我不希望返回並手動更改所有權限現有的組織是我的默認設置。
有自動施加這些默認的數據庫中現有的組織方式?
您是否嘗試過使用此https://msdn.microsoft.com/en-us/library/system.componentmodel.defaultvalueattribute%28v=vs.110%29。aspx,我不知道這是否會工作,雖然 – George
謝謝,這很有趣,我從來沒有見過這個屬性。我會嘗試在屬性中添加'[DefaultValue(typeof(PermissionLevels),PermissionLevels.Administrator)]'標籤,看看它是否已經被強制執行。我假設在此之後獲得並設置工作正常? – JonnyKnottsvill
應該沒問題,正如我在第一條評論中所說的那樣,我不知道它是否會將當前數據庫編輯爲這些值。 – George