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");
}
}
幫助將提前