[英]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.