2013-05-01 86 views
3

在我的SQL Server上我有一个名为“预览”的用户,它具有默认模式“预览”。即使我在连接字符串中有此用户,实体框架始终使用dbo模式。这是正常行为还是我的SQL服务器配置有问题?实体框架不使用用户默认模式

我知道我可以用TableAttributeModelBuilder定义不同的模式,但我真的试图避免这种模式。

回答

3

是,对于EF版本< = 5。 EF6中会有新功能来实现您所需的功能。 看到这里的解释,DbModelBuilder.HasDefaultSchema

http://entityframework.codeplex.com/wikipage?title=specs

+1

下你参考** ** DbModelBuilder.HasDefaultSchema。但是,这远远不能自动获取登录用户的默认模式。答案应该是映射规则。据我所知EF甚至没有意识到用户的默认模式。 – 2013-05-01 19:46:27

+0

@GertArnold我同意,但也许可以在基于活动用户的runtima中配置默认​​模式。不太了解OP的需求,但是如果只有一个用户使用DbContext,他应该能够设置活动用户的默认模式。 SemiAutomatic,但仍然可以避免在每个表格中使用硬编码模式。 – jure 2013-05-01 19:51:28

+0

我唯一的要求是在运行时更改模式。所以'Db.ModelBuilder.HasDefaultSchema'可能是一个很好的解决方案。我现在来看看EF 6 Alpha的发布。谢谢你的帮助。 – android 2013-05-01 20:34:25