Je reçois une exception ModelValidationException (en bas) lorsque je travaille avec "EF-Code First". Il veut définir une clé, mais je ne sais pas exactement ce que cela signifie ...Comment définir les touches lorsque je travaille avec "EF-Code First"?
public class Unit
{
Guid id;
String public_id;
String name;
bool deleted;
}
public class MyDataContext : DbContext
{
public DbSet<Unit> Units { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Unit>().ToTable("sometable");
}
}
[TestFixture]
public class DataTests
{
[Test]
public void Test()
{
MyDataContext database = new MyDataContext();
var o = database.Units;
Console.WriteLine(o.Count()); // This line throws!
Assert.IsTrue(true);
}
}
System.Data.Entity.ModelConfiguration.ModelValidationException: Une ou plusieurs erreurs de validation ont été détectées lors de la génération de modèle:
System.Data.Edm.EdmEntityType:: EntityType 'Unité' n'a pas de clé définie. Définissez la clé pour cet EntityType.
System.Data.Edm.EdmEntitySet: EntityType: EntitySet Units est basé sur le type Unité qui n'a aucune clé définie.
EF classera automatiquement les propriétés avec le suffixe "Id" (notez le 'd' minuscule) comme clés. Il est préférable de suivre la convention plutôt que d'attribuer manuellement des champs en tant que clés. – Charlie