问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

在联合主键的对象关系映射文件中用什么标签表示

发布网友 发布时间:2024-10-22 11:56

我来回答

1个回答

热心网友 时间:2024-11-15 14:48

您好,这样的:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="Model.CompositeModel, Model" table="Composite">
<composite-id name="Pk" class="Model.PKModel, Model">  //name为主实体类的属性名
<key-property name="Id1" type="String" column="Id1"/>
<key-property name="Id2" type="String" column="Id2"/>
</composite-id>
<property name="Name" column="Name" type="String"/>
</class>
</hibernate-mapping>

  CompositeModel.cs
public class CompositeModel
{
public virtual PKModel Pk { get; set; }
public virtual string Name { get; set; }
}

  PKModel.cs

public class PKModel
{
public virtual string Id1 { get; set; }
public virtual string Id2 { get; set; }

/// <summary>
/// 判断两个对象是否相同,这个方法需要重写
/// </summary>
/// <param name="obj">进行比较的对象</param>
/// <returns>真true或假false</returns>
public override bool Equals(object obj)
{
if (obj is PKModel)
{
PKModel pk = obj as PKModel;
if (this.Id1 == pk.Id1 && this.Id2 == pk.Id2)
{
return true;
}
}
return false;
}

public override int GetHashCode()
{
return base.GetHashCode();
}
}

   操作:

class Program
{
static void Main(string[] args)
{
ISessionFactory _sessionFactory = new Configuration().Configure().BuildSessionFactory();
using(ISession NSession = _sessionFactory.OpenSession())
{
IList<CompositeModel> ListComposite = NSession.Query<CompositeModel>().ToList();
foreach (var c in ListComposite)
{
Console.WriteLine(c.Name);
}

//查询单条
PKModel pk = new PKModel();
pk.Id1 = "01";
pk.Id2 = "1";
CompositeModel m = NSession.Get<CompositeModel>(pk);
Console.WriteLine(m.Name);
}
Console.ReadKey();
}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
PCR有哪些分类? 不鸣则已 一鸣惊人的三个星座 电动车加装蓝牙音箱怎么接线 怎么把QQ同步助手卸载掉?简直就是垃圾,什么没操作就直接给安装上了,怎... 怎么把QQ同步助手卸载掉?简直就是流氓软件。什么东西没经过我点‘’同 ... excel表如何将相间隔的不同两行组合在一起,成为一行? excel工作表如何对行各自组合 考科目一自己去还是驾校统一去 科目一是自己考还是在驾校 社保转移后,新单位没要转移单,只要了身份证,是不是就可以办理了 什么是社保转移 java中联合主键的应用 倾城之恋中“死生契阔—与子相悦”与诗经中不符 我家复式楼,300M的路由器放在二楼书房!我的房间在一楼,但是WI-FI信号... 复式楼房用TP-LINK哪个型号无线路由器好? 世界男排大冠军赛是那几个国家? 树达学院和涉外哪个好 从长沙市火车站到湖南师范大学树达学院,搭公交车,怎么去? 湖南农大到湖南师范大学树达学院公交怎么走 我的煤气灶漏气了怎么办?好多的火从开关哪出来,好害怕 ,但是饭还得... 育种的方法有哪些 补牙的时候疼吗? 补牙哪个过程最痛 补牙时疼吗 我朋友在微信朋友圈里发了个说说然后自己在下面统一回复了,别人都能... RECTRECT类 VB 超简易迷宫 代码 光绪皇帝是因什么而死的 清朝皇帝光绪是怎么死的? 光绪皇帝死于何时? 安龙特产大全(黔西南州安龙县十大特产) 当归能祛斑怎么用法 妖孽夫,桃花妻的作品目录 求《妖孽夫,桃花妻》第五十五回~~~下到的全五十五回都不对~~急求!!! 风扇费电多少 求 妖孽夫桃花妻 全集+番外 妖孽夫,桃花妻目录小说txt全集免费下载 妖孽夫,桃花妻电子书txt全集下载 泰国普吉跟甲米哪个比较好玩 众擎易举打一动物 60w风扇24小时用多少电? ...y²=12x的焦点重合则过该双曲线的右焦点F做其 .../5=1的右焦点与抛物线y⊃2;=12x的焦点重合,则此双曲线离心率为_百... ...B两点,过原点O作OM⊥AB,垂足为M,则点M的轨迹方程是 已知椭圆C的右焦点与抛物线y∧2=4x的焦点重合,椭圆C与x轴的交点为双... 为什么办结婚证时'要抽血化验 办结婚证为什么需要抽血化验? 办结婚证医院抽血检查是不是有检查HⅠV这项? 下列字符串常量表示中,错误的是 A."\"yes\"or\"No\""; B."\’OK!\... 下面不正常的字符串常量是 A)'abc'B) "1+2=10 " C) "1=2 "D)""_百 ... 可可小爱:切勿高空抛物,这样危害极大,损害他人生命健康