Sql server 具有复合主键导航特性的EF Core 3.1

Sql server 具有复合主键导航特性的EF Core 3.1,sql-server,entity-framework-core,composite-primary-key,Sql Server,Entity Framework Core,Composite Primary Key,我的桌子 CREATE SEQUENCE SeqA START WITH 1 INCREMENT BY 1; CREATE TABLE TblA ( CompanyID BIGINT NOT NULL, ID BIGINT DEFAULT (NEXT VALUE FOR SeqA), .. PRIMARY KEY (CompanyID, ID)); 及 问题1:如何设置外键以引用TblB中的TblA 问题2:当使用EF Core 3.1时,如何在TblB中为Co

我的桌子

CREATE SEQUENCE SeqA START WITH 1 INCREMENT BY 1;
CREATE TABLE TblA (
    CompanyID BIGINT NOT NULL,
    ID BIGINT DEFAULT (NEXT VALUE FOR SeqA),
    ..
    PRIMARY KEY (CompanyID, ID));

问题1:如何设置外键以引用TblB中的TblA


问题2:当使用EF Core 3.1时,如何在TblB中为CompanyID和ID设置导航属性以引用TblA?

使用复合密钥有什么意义<代码>ID是唯一的。添加
CompanyID
毫无帮助。相反,它允许通过指定不同的
公司ID
插入重复的ID值。这在多对多表中是有意义的。这就是
tblA
吗?我在支持不同公司的不同PC上部署了相同的应用程序。一天结束时,需要合并数据。您可以在
HasKey
HasForeignKey
中指定一个匿名类型,该类型组合多个属性。检查一下,谢谢。我要试一试。
CREATE TABLE TblB (
    MyID BIGINT PRIMARY KEY IDENTITY(1, 1),
    ..
    CompanyID BIGINT NOT NULL, -- These are foreign key references to TblA
    ID BIGINT NOT NULL
);