簡體   English   中英

實體框架6似乎忽略了HasDefaultSchema

[英]Entity Framework 6 seems to be ignoring HasDefaultSchema

我正在一個網站上工作,我們希望模式能夠區分項目之間的差異,並以此確保項目之間的安全。

我有一些運氣這個使用HasDefaultSchema的方法OnModelCreating在我的數據方面,也有讓我DbContext執行IDbModelCacheKeyProvider貫徹CacheKey財產。 它曾經工作過。 不幸的是,此解決方案似乎不一致,並且我目前在嘗試更新模型時遇到問題,但是在運行Update-Database時遇到以下錯誤:

The specified schema name "dbo" either does not exist or you do not have permission to use it.

連接字符串的用戶只能訪問我的xma模式,因此,如果我更改了模式,則此錯誤是有道理的,但是您可以在以下代碼中看到,但我沒有:

public class DataContext : DbContext, DbModelCacheKeyProvider
{
    public DataContext()
        //: base("name=DataContext")
        : base("DataContext")
    {
    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        ...
        modelBuilder.HasDefaultSchema("xma");

        base.OnModelCreating(modelBuilder);
    }

    public virtual DbSet<Article> Articles { get; set; }
    public virtual DbSet<Author> Authors { get; set; }
    ...

    public string CacheKey
    {
        get { return Utility.SchemaPrefix ?? "xma"; }
    }
}

其他團隊成員也會發生此問題,因此將不勝感激。

謝謝

編輯:我忘了提,這似乎是一個干凈的數據庫上的問題。

我已經刪除了對模型的未決更改,並且能夠按照Steve的建議運行update-database -script ,結果證明,初始遷移基於dbo模式,因此更改為特權更高的用戶,並且能夠繼續重新創建數據庫。 不幸的是我的錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM