Ricevo un valore ModelValidationException (nella parte inferiore) quando si lavora con "Codice EF First". Mi vuole definire una chiave, ma non sono sicuro di cosa esattamente significhi ...Come si definiscono i tasti quando si lavora con "Codice EF prima"?
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: sono stati rilevati uno o più errori di convalida durante la generazione del modello:
System.Data.EdmEntityType:: EntityType 'Unit' non ha alcuna chiave definita. Definire la chiave per questo EntityType.
System.Data.Edm.EdmEntitySet: EntityType: EntitySet Unità è basata su tipo Unità senza chiavi definite.
EF classificherà automaticamente le proprietà con il suffisso "Id" (si noti la "d" minuscola) come chiavi. È meglio seguire la convenzione anziché attribuire manualmente i campi come chiavi. – Charlie