App Config中的实体框架ConnectionString具有重复的表

时间:2016-04-12 10:29:48

标签: sql-server entity-framework

出于某种原因,我有一个数据库,其中有三种类型的表,但名称相同,但前缀不同。数据库的架构是这样的:

enter image description here

我必须手动实现dbo.SpRicezioneSpedizioniLight表,我已经意识到有这两个类:

public class SpRicezioneSpedizioniLight
{
    public string AudOperation { get; set; }
    public Nullable<System.DateTime> AudDateLog { get; set; }
    public int PROGRESSIVO { get; set; }
}

public class GemapDbContext : DbContext
{
    public DbSet<SpRicezioneSpedizioniLight> SpRicezioneSpedizioniLights { get; set; }
}

如何识别特定的表dbo.SpRicezioneSpedizioniLight?现在我的连接字符串是:

<add name="SABIntegrationEntities" connectionString="metadata=res://*/Models.ModelTest.csdl|res://*/Models.ModelTest.ssdl|res://*/Models.ModelTest.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=localhost;initial catalog=SABIntegration;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" /></connectionStrings>

所有这些在具有单个表的本地数据库中工作正常。

谢谢

1 个答案:

答案 0 :(得分:2)

&#34;前缀&#34; tablename的名称是此表与之关联的架构的名称。 &#34; DBO&#34;是EF使用的默认架构名称。

您可以使用更改默认架构 modelBuilder.HasDefaultSchema(的SchemaName); 在OnModelCreating-Method中,或者将其他类型映射到明确使用的类型 modelBuilder.Entity()。ToTable(&#34; SpRicezioneSpedizioniLight&#34;,&#34; bak&#34;);