使用實體框架4.3.1 CodeFirst和有沒有運氣得到遷移或腳本來尊重,我想我的表在最終的模式。實體框架代碼優先忽視特定的模式
似乎默認行爲(無論我做什麼,我都會看到)是從實際運行的SQL中完全省略模式,導致在默認模式中爲運行遷移或腳本的用戶創建表。
我的數據庫管理員告訴我,由於我是AD組的一部分而不是本地用戶,所以他們無法更改我的默認模式,因此更改運行用戶的默認模式(通常推薦的解決方法)該腳本根本不是一個選項。
我使用這樣的註解嘗試:
[Table("MyTable", Schema = "dbo")]
public class MyTable
{
public int Id { get; set; }
public string MyProp1 { get; set; }
public string MyProp2 { get; set; }
}
而且我用的一樣的東西流利的變種也試過:
modelBuilder.Entity<YourType>().ToTable("MyTable", "dbo");
得到的腳本(和遷移)忽略我試圖指定模式的事實。該腳本是這樣的:
CREATE TABLE [MyTable] (
[Id] [int] NOT NULL IDENTITY,
[MyProp1] [nvarchar](max),
[MyProp2] [nvarchar](max),
CONSTRAINT [PK_MyTable] PRIMARY KEY ([Id])
)
當應該是[DBO]藏在裏面是這樣的:
CREATE TABLE [dbo].[MyTable] (
[Id] [int] NOT NULL IDENTITY,
[MyProp1] [nvarchar](max),
[MyProp2] [nvarchar](max),
CONSTRAINT [PK_MyTable] PRIMARY KEY ([Id])
)
任何人都有運氣讓實體框架尊重的架構?這種行爲幾乎殺死了我們在企業環境中使用codefirst的能力。
提醒:將我的用戶更改爲擁有不同的默認架構根本不是一個選項。
奇。看起來像TSQL,因此對我來說SQL Server。那是對的嗎?我已經完成了很多沒有問題的事情。從我的代碼第一本書: [表(「地點」,架構=「baga」)] 公開課目的地 請記住,對於Visual Basic –
(感覺不像答案..)你嘗試了一些比「dbo 「?想知道是否因爲「dbo」是EF/SQL Server的默認值,SQL Server提供程序不會顯式添加它。 –
Julie - (是,SQL Server)嘗試使用除「dbo」以外的內容,並且它創建並指定模式就好!有趣。問題是,我們*想*我們的表在「dbo」有趣的是,它只是*期待*「dbo」 –