【发布时间】:2021-09-03 14:56:30
【问题描述】:
嘿,我需要 NHibernate 中的多对多关系方面的帮助,我收到此错误:
NHibernate.MappingException: Unable to build the insert statement for class SelfHost.Core.Repository.implementation.HibernateProduktHaendler: a failure occured when adding the Id of the class ---> System.ArgumentException: The column 'Produkt_P_ID' has already been added in this SQL builder (Parameter 'columnName')
我有 3 个表 produkt、Haendler 和 ProduktHaendler,ProduktHaendler 同时将 Haendler_H_ID 作为主键和外键,同时将 Produkt_P_ID 作为主键和外键(我认为这是问题所在)
这是我的类 Prdoukthaendler 和映射
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SelfHost.Core.Repository.implementation
{
public class HibernateProduktHaendler
{
public virtual HibernateProdukt Produkt_P_ID { set;get; }
public virtual string ProduktURL { set; get; }
public virtual HibernateHaendler Haendler_H_ID { set; get; }
public override bool Equals(object obj)
{
if (obj == null)
return false;
HibernateProduktHaendler id;
id = (HibernateProduktHaendler)obj;
if (id == null)
return false;
if (Produkt_P_ID == id.Produkt_P_ID && Haendler_H_ID == id.Haendler_H_ID)
return true;
return false;
}
public override int GetHashCode()
{
return (Produkt_P_ID + "|" +Haendler_H_ID).GetHashCode();
}
}
}
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="SelfHost"
namespace="SelfHost.Core.Repository.implementation">
<class name="HibernateProduktHaendler" table="ProduktHaendler">
<id class="HibernateProduktHaendler">
<key-property name="Produkt_P_ID" type="int"></key-property>
<key-property name="Haendler_H_ID" type="int"></key-property>
</id>
<property name="ProduktURL" />
<many-to-one name="Produkt_P_ID" ></many-to-one>
<many-to-one name="Haendler_H_ID" ></many-to-one>
</class>
</hibernate-mapping>
【问题讨论】:
标签: c# sql hibernate nhibernate many-to-many