Rya*_*man 14 c# sql-server asp.net-mvc entity-framework
我正在尝试从通过EF(代码优先)连接的ASP.NET MVC 3应用程序中的C#连接到共享托管环境中的SQL Server 2008数据库.
我的问题是生成的SELECT
语句如下所示:
SELECT ... FROM [dbo].[TableName]
Run Code Online (Sandbox Code Playgroud)
抛出错误Invalid object name
,但在我这样做时工作正常:
SELECT ... FROM [mySQLUserName].[TableName]
Run Code Online (Sandbox Code Playgroud)
如何指定dbo
(例如mySQLUserName
)以外的用户名?
编辑:
我发现的与此问题相关的最接近的文章是:
特别强调第二篇文章,但它没有指定如何设置除以外的用户名 dbo
Ada*_*ras 13
您可以使用TableAttribute
装饰实体类的属性指定架构.
[Table("TableName", Schema = "mySQLUserName")]
Run Code Online (Sandbox Code Playgroud)
您没有说您正在使用哪个版本的EF.如果您使用的是Code First(4.1),则可以在表属性上指定架构:
[Table("Users", Schema = "myschema")]
public class User { .. }
Run Code Online (Sandbox Code Playgroud)
您可以使用Scott的文章(第二篇)作为基础,但您添加了一个额外的参数.即:
modelBuilder.Entity<YourType>().ToTable("TableName", "SchemaName");
Run Code Online (Sandbox Code Playgroud)
使用EF6,您现在可以执行此操作.
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.HasDefaultSchema("logs"); //set default schema
modelBuilder.Configurations.Add(new LogMap());
...
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4997 次 |
最近记录: |