"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:1つのまたは複数の検証エラーがモデルの生成中に検出されました:
System.Data.Edm.EdmEntityType :: EntityType 'Unit'にはキーが定義されていません。このEntityTypeのキーを定義します。
System.Data.Edm.EdmEntitySet:EntityType:EntitySet Unitsは、キーが定義されていない型Unitに基づいています。
EFは自動的にプロパティを接尾辞 "Id"(小文字の 'd'に注意)でキーとして分類します。手動でフィールドをキーとして帰属させる代わりに、規約に従うことが最善です。 – Charlie