使用实体框架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” –