I get a ModelValidationException (at the bottom) when working with "EF-Code First". It wants me to define a Key but I'm not sure what exactly it means...
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 : One or more validation errors were detected during model generation:
System.Data.Edm.EdmEntityType: : EntityType 'Unit' has no key defined. Define the key for this EntityType.
System.Data.Edm.EdmEntitySet: EntityType: The EntitySet Units is based on type Unit that has no keys defined.
Make your fields properties, and then use the [Key]
attribute like this:
[Key]
public Guid MyId { get; set; }
You will have to reference and import System.ComponentModel.DataAnnotations to get the KeyAttribute. More info can be found here.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With