我注意到Fluent生成的DDL不会为构成多对多关系表的2列(即联结/链接/桥接表)创建PK。
例如(来自Fluent源中的Example.FirstProject),
Store <-- many-to-many --> Product
在StoreProduct表中,您有两列:
ProductFK, StoreFK
此StoreProduct表是通过Fluent的HasManyToMany语句隐式生成的。我想让它生成DDL,将2列定义为PK。
这是由Fluent for SQLite生成的:
create table StoreProduct
(ProductFK INT not null,
StoreFK INT not null,
constraint FKE9A26716DC700501 foreign key (StoreFK) references "Store",
constraint FKE9A26716815A48A8 foreign key (ProductFK) references "Product");
我希望这样做:
create table StoreProduct
(ProductFK INT not null,
StoreFK INT not null,
constraint FKE9A26716DC700501 foreign key (StoreFK) references "Store",
constraint FKE9A26716815A48A8 foreign key (ProductFK) references "Product",
PRIMARY KEY(ProductFK, StoreFK));
是否可以使用Fluent(即以流利的方式指定,以便我得到StoreProduct桥表,以获得ProductFK和StoreFK的PK)?
答案 0 :(得分:0)
只有将StoreProduct实现为自己的DataClass而不是关联表时,才能生成主键。但是这样你就不会最终得到多对多但却被多对一联系的关系。