出于某种原因,我有一个数据库,其中有三种类型的表,但名称相同,但前缀不同。数据库的架构是这样的:
我必须手动实现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="data source=localhost;initial catalog=SABIntegration;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" /></connectionStrings>
所有这些在具有单个表的本地数据库中工作正常。
谢谢
答案 0 :(得分:2)
&#34;前缀&#34; tablename的名称是此表与之关联的架构的名称。 &#34; DBO&#34;是EF使用的默认架构名称。
您可以使用更改默认架构 modelBuilder.HasDefaultSchema(的SchemaName); 在OnModelCreating-Method中,或者将其他类型映射到明确使用的类型 modelBuilder.Entity()。ToTable(&#34; SpRicezioneSpedizioniLight&#34;,&#34; bak&#34;);