2013-04-10 80 views
0

我已经使用过电动工具来逆向工程数据库。它首先使用代码创建类和映射。那里不是问题。实体框架4.1无效的对象名称'我'

,但是当我尝试运行下面的代码:

using (var tmp= new PdbContext("nameofdb") 
       { 


        try 
        { 
         tmp.Configuration.AutoDetectChangesEnabled = false; 


         var tmpUsr = (from t in tmp.DadosUtilizadores 
             where t.inactivo == false 
             select t).ToList(); 
        } 
        finally 
        { 
         tmp.Configuration.AutoDetectChangesEnabled = true; 
        } 
       } 

它抛出用以下文字异常。

无效的对象名称“我们”

我搜索在这里,结果发现,通过执行以下操作将解决我的问题:

modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); 

,但它仍然不解决我的问题。 所以我检查了表的名称,它是正确的。 打开linqpad并试图访问数据,它没有任何问题的工作。有一件事引起了我的注意。该表有触发器,触发器会引发这种情况的问题吗?

为了更好地理解,下面的代码引用了我的上下文类,名为PdbContext 和名为UtilizadoresMap的映射类。

PdbContext类

public class PdbContext:DbContext 
    { 
     public DbSet<Fltcl> FiltrosClientes { get; set; } 
     public DbSet<Fltst> FiltrosStocks { get; set; } 
     public DbSet<Bo> DossiersInternos { get; set; } 
     public DbSet<Cl> DadosClientes { get; set; } 
     public DbSet<Utilizadores> DadosUtilizadores { get; set; } 

     public PdbContext(string valueConn):base(valueConn) 
     { 
      Database.SetInitializer<PdbContext>(null); 
     } 

     protected override void OnModelCreating(DbModelBuilder modelBuilder) 
     { 
      modelBuilder.Configurations.Add(new FltstMap()); 
      modelBuilder.Configurations.Add(new FltclMap()); 
      //modelBuilder.Configurations.Add(new ClMap()); 
      modelBuilder.Configurations.Add(new UtilizadoresMap()); 

      //teste 
      modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); 
      // 
      base.OnModelCreating(modelBuilder); 
     } 
    } 

UtilizadoresMap类

public class UtilizadoresMap : EntityTypeConfiguration<Utilizadores> 
    { 
     public UtilizadoresMap() 
     { 
     ....... 
     ToTable("us"); 
     } 
    } 

帮助将提前

回答

0

理解 感谢我终于想通了出来。问题是我使用一个providerconnectionstring到数据库,而不是只加载字符串,并让实体框架创建它。

相关问题