當使用「EF-Code First」時,我得到一個ModelValidationException(在底部)。它想讓我來定義鍵,但我不知道到底是什麼意思?如何在使用「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:模型生成過程中檢測到一個或多個驗證錯誤:
System.Data.Edm.EdmEntityType :: EntityType'Unit'沒有定義鍵。定義此EntityType的關鍵字。
System.Data.Edm.EdmEntitySet:EntityType:EntitySet單位基於沒有定義鍵的類型Unit。
EF會自動將具有後綴「Id」(注意小寫'd')的屬性歸類爲鍵。最好遵循約定,而不是手動將字段歸爲鍵。 – Charlie 2012-08-16 16:54:53