0

我有兩個表和我創建連接表的魔杖。我有這個映射。NHibernate。符合。在連接表中設置複合主鍵

public UsertMap() 
    { 
     Table("Users"); 
     Id(x => x.Id, map => map.Generator(Generators.Assigned)); 
     Property(x => x.FirstName, map => map.NotNullable(true)); 
     Property(x => x.LastName, map => map.NotNullable(true)); 
     Property(x => x.Role, map => map.NotNullable(true)); 
     Bag(x => x.Projects, map => 
     { 
      map.Table("UsersInProject"); 
      map.Cascade(Cascade.None); 
      map.Access(Accessor.Field); 
      map.Key(u => u.Column("UserId")); 
      }, a => a.ManyToMany(x => x.Column("ProjectId"))); 
    } 

public ProjectMap() 
    { 
     Table("Projects"); 
     Id(x => x.Id, map => map.Generator(Generators.Assigned)); 
     Property(x => x.SubmissionDate, map =>map.NotNullable(true)); 
     Property(x => x.QuotesubmissionDate, map => map.NotNullable(true)); 
     Bag(x => x.ProjectUsers, map => 
     { 
      map.Table("UsersInProject"); 
      map.Cascade(Cascade.None); 
      map.Access(Accessor.Field); 
      map.Key(u => u.Column("ProjectId")); 
     }, a => a.ManyToMany(x => x.Column("UserId"))); 
    } 

它創建聯接表,但沒有設置主鍵*,複合鍵{專案編號,用戶ID}

我在做什麼錯?

Thanx提前。

*當我被告知關於我的代碼時,我理解它也很奇怪。

CREATE TABLE "UsersInProject" 
(
    "ProjectId" uuid NOT NULL, 
    "UserId" uuid NOT NULL, 
    CONSTRAINT fk28998796db607aa2 FOREIGN KEY ("UserId") 
     REFERENCES "Users" ("Id") MATCH SIMPLE 
     ON UPDATE NO ACTION ON DELETE NO ACTION, 
    CONSTRAINT fk28998796f9a8d344 FOREIGN KEY ("ProjectId") 
     REFERENCES "Projects" ("Id") MATCH SIMPLE 
     ON UPDATE NO ACTION ON DELETE NO ACTION 
) 
WITH (
    OIDS=FALSE 
); 
ALTER TABLE "UsersInProject" 
    OWNER TO test; 

我也expece喜歡下在有一行::

CONSTRAINT pk PRIMARY KEY ("ProjectId" , "UserId"), 

EDIT2:(爲一個更好的視野)

drop table if exists "UsersInProject" cascade; 
create table "UsersInProject" (
     "ProjectId" uuid not null, 
     "UserId" uuid not null 
    ); 
    alter table "UsersInProject" 
     add constraint FK28998796DB607AA2 
     foreign key ("UserId") 
     references "Users"; 

    alter table "UsersInProject" 
     add constraint FK28998796F9A8D344 
     foreign key ("ProjectId") 
     references "Projects"; 
所創建的表由此SQL代碼創建
+0

這是什麼意思:「但沒有設置爲主鍵,組合鍵{ProjectId,UserId}」? –

+0

我編輯回答你的問題。 – Turambar

+0

有什麼問題? –

回答