estoy tratando de utilizar Entity Framework 5. El primer problema fue que EF creats tablas automáticamente. Intenté solucionarlo incluyendo dbModelBuilder.Conventions.Remove<PluralizingTableNameConvention>()
. El segundo problema fue el error como este¿Cómo desactivar la creación de tabla plural para Entity Framework 5?
El modelo que respalda el contexto 'CountryContext' ha cambiado desde que se creó la base de datos . Considere usar Code First Migrations para actualizar la base de datos.
He intentado solucionarlo por dbModelBuilder.Conventions.Remove<IncludeMetadataConvention>();
pero no tiene sentido. La capa de acceso de datos al siguiente:
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;
}
}
Otros detalles: VS 2012, 4,5 marco, marco de la entidad 5.0.0.0 Y para EF 4 funciona perfecto (sin método OnModelCreating).
conjetura completa aquí pero todavía EF reconoce el ent dad como un identificador cuando se da a entender como 'Id' opone al uso de mayúsculas, así:' ID' –