Comment désactiver pluraliser la création de la table pour Entity Framework 5?
Je suis en train d'utiliser Entity Framework 5. Le premier problème était que EF crée automatiquement des tables. J'ai essayé de le fixer en incluant
dbModelBuilder.Conventions.Remove<PluralizingTableNameConvention>()
. Le deuxième problème est l'erreur comme ceci
Le modèle de la sauvegarde de la " CountryContext contexte a changé depuis la
la base de données a été créé. Pensez à utiliser le Code Premières Migrations de mise à jour
la base de données.
J'ai essayé de le fixer par dbModelBuilder.Conventions.Remove<IncludeMetadataConvention>();
mais pas de sens.
La couche d'accès aux données le suivant:
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;
}
}
Informations supplémentaires: VS 2012, framework 4.5, entity framework 5.0.0.0
Et pour EF 4, il fonctionne parfaitement (sans OnModelCreating méthode).
- Complet deviner ici, mais n'EF toujours de reconnaître l'entité comme un Identifiant lorsque vous sous-entendre que
Id
opposition à l'utilisation de TOUS les CHAPEAUX de la sorte:ID
Vous devez vous connecter pour publier un commentaire.
Vous pouvez écrire ce code dans OnModelCreating méthode:
Si vous ne voulez pas EF pour créer des tables et de gérer la cohérence entre le modèle et la base de données il suffit d'utiliser cette au démarrage de votre application:
À l'aide de LINQ en EF 6.0: