gpt4 book ai didi

c# - Nhibernate多对多桥接表保持为空

转载 作者:太空宇宙 更新时间:2023-11-03 11:22:46 26 4
gpt4 key购买 nike

我有两个表与桥接表具有多对多关系。

用户类映射:

<class name="MatrixCore.User" table="MatrixUser" lazy="false">
<id name="ID" column="ID" unsaved-value="0">
<generator class="native"/>
</id>
<property name="FirstName"/>
<property name="LastName"/>
<property name="UserName"/>
<property name="Password"/>
<many-to-one name="UserType" class="MatrixCore.UserType" />
<set name="Projects" table="UserInProject" cascade="All">
<key column="MatrixUser_ID"/>
<many-to-many class="Project" column="Project_ID"/>
</set>
</class>

项目类映射:

<class name="MatrixCore.Project" table="Project" lazy="false">
<id name="ID" column="ID" unsaved-value="0">
<generator class="native"/>
</id>
<property name="Name" />
<property name="Acronym"/>
<property name="StartDate"/>
<property name="EndDate"/>
<set name="Users" table="UserInProject" cascade="All">
<key column="Project_ID"/>
<many-to-many class="User" column="MatrixUser_ID" />
</set>
</class>

类的实现太简单了,每个类都有一个集合另一个。我正在尝试在桥接表保持为空的表中插入记录。

    ICollection<Project> ps = new HashSet<Project>() { project};

UserType tp = (UserType)session.Get("UserType", 1);
User u = new User()
{
FirstName = "Hussein",
LastName = "Hussein",
UserName = "Hussein",
Password = "welcome",
UserType = tp,
Projects = ps
};

session.Save(u);

最佳答案

试试这个映射 对于用户类

<set name="Projects" table="UserInProject" inverse="true" cascade="save-update" lazy="false">
<key column="MatrixUser_ID" />
<many-to-many class="Project" column="Project_ID"/>
</set>

和项目类

<set name="Users" table="UserInProject" cascade="save-update" lazy="false">
<key column="Project_ID" />
<many-to-many class="User" column="MatrixUser_ID"/>
</set>

关于c# - Nhibernate多对多桥接表保持为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10402438/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com