Fluent API を使用しています。私は注釈が好きではありません。
すべてのテーブルで、常に自動インクリメントを主キーとして使用するのが好きです。
私のテーブルのいくつかでは、X と Y (X は自動インクリメント キーではなく、Y は自動インクリメント キーではありません) の 2 つの列が一意である必要があります。 Y1=Y2。自動インクリメント キーを使用していない場合は、次のように単純にこれら 2 つをキーにします。
modelBuilder.Entity<Foo>() .HasKey(t => new { t.X, t.Y }) .ToTable("Foos");
しかし、(2)で述べたように、自動インクリメントの主キーを使用しています
modelBuilder.Entity<Foo>() .HasKey(t => t.someLongId) .ToTable("Foos");
Fluent API でこの複合的な一意性を実現するにはどうすればよいですか?
これは私が達成したいことであり、SQLで書かれています:
CREATE TABLE `Foos` (
`ID` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT ,
...
PRIMARY KEY (`ID`),
UNIQUE KEY (`X`, `Y`)
);