我使用流畅的 API。我不喜欢注释。
我喜欢在所有表中始终使用自动增量作为主键。
我的一些表要求两列 X 和 Y(其中 X 不是自动增量键,Y 不是自动增量键)必须是唯一的,即:不能有另一行使其具有 X1=X2 和Y1=Y2。如果我不使用自动增量键,我只需将这两个键设为键,如下所示:
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`)
);