Sto tentando di utilizzare Entity Framework 5. Il primo problema è che EF crea automaticamente le tabelle. Ho provato a risolverlo includendo dbModelBuilder.Conventions.Remove<PluralizingTableNameConvention>()
. Il secondo problema era l'errore come questoCome disattivare la creazione di tabelle plurali per Entity Framework 5?
Il contesto del modello "CountryContext" è stato modificato dal momento in cui è stato creato il database . Prendi in considerazione l'utilizzo di Code First Migrations per aggiornare il database .
Ho provato a risolverlo da dbModelBuilder.Conventions.Remove<IncludeMetadataConvention>();
ma non ha senso. Il livello di accesso ai dati la prossima:
Table(Name = "tblCountries")]
public class Country
{
[Column(Name = "id", IsDbGenerated = true, IsPrimaryKey = true)]
public int Id {get;set;}
[Column(Name = "name")]
public string Name {get;set;}
}
public class CountryContext:DbContext
{
public CountryContext(string connStr):base(connStr)
{
}
public DbSet<Country> TblCountries { get; set; }
protected override void OnModelCreating(DbModelBuilder dbModelBuilder)
{
dbModelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
dbModelBuilder.Conventions.Remove<IncludeMetadataConvention>();
}
}
public class CountryDal:BaseDal
{
public int CheckIsExist(Country country)
{
int id = 0;
using (var context = new CountryContext(ConnectionString))
{
var first = context.TblCountries.FirstOrDefault(el => el.Name == country.Name);
if (first != null)
{
id = first.Id;
}
}
return id;
}
}
Ulteriori informazioni: VS 2012, framework 4.5, Entity Framework 5.0.0.0 E per EF 4 funziona perfettamente (senza metodo OnModelCreating).
indovinare completo qui, ma non EF ancora riconosce l'ent come identificatore quando lo si intuisce come "Id" contrario all'uso di MAIUSC come in questo modo: 'ID' –