public void ComponentMappingDemo()
{
//show how " /> 色欲久久99精品久久久久久AV ,消息称老熟妇乱视频一区二区,国产产乱码一二三区别免费

天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

NHibernate3剖析:Mapping篇之ConfORM實戰(zhàn)(5):Component語義

  Component語義

  使用ConfORM“映射”組件,我們無需特別設(shè)置,ConfORM內(nèi)部會根據(jù)Domain定義來判定組件,一般而言,沒有主鍵的類就是組件。

[Test]
public void ComponentMappingDemo()
{
//show how work with components and how ConfORM understands OOP
var orm = new ObjectRelationalMapper();
var mapper = new Mapper(orm);
//use the definition of table-to-class strategy class by class
orm.TablePerClass<Person>();
// Show the mapping to the console
var mapping = mapper.CompileMappingFor(new[] { typeof(Person) });
Console.Write(mapping.AsString());
}

  一些Domain范例

  我們使用各種集合定義Domain:

  1.Mapping a class with components

  Person實體有兩個組件:

public class Person
{
public int Id { get; set; }
public Name Name { get; set; }
public Address Address { get; set; }
}

public class Name
{
public string First { get; set; }
public string Last { get; set; }
}
public class Address
{
public string Street { get; set; }
public int CivicNumber { get; set; }
}

  Mapping

  輸出HbmMapping的映射字符串結(jié)果:

ClassWithComponents  2.Mapping a class with double usage of same component

  在上面Domain的基礎(chǔ)上新增一個Name類型的屬性:

public class Person
{
public int Id { get; set; }
public Name Name { get; set; }
public Name ShowBusinessAlias { get; set; }
public Address Address { get; set; }
}

  Mapping

  輸出HbmMapping的映射字符串結(jié)果:

ClassWithDoubleSameComponents  3.Collection of components

  使用一個集合,而不是單一組件:

public class Person
{
private Iesi.Collections.Generic.ISet<Address> addresses;
public Person()
{
addresses = new Iesi.Collections.Generic.HashedSet<Address>();
}
public int Id { get; set; }
public Name Name { get; set; }
public ICollection<Address> Addresses { get { return addresses; } }
}

  Mapping

  輸出HbmMapping的映射字符串結(jié)果:

CollectionOfComponents  4.Bidirectional relation

  實現(xiàn)實體與組件的雙向關(guān)聯(lián)關(guān)系:

public class Person
{
public int Id { get; set; }
public Name Name { get; set; }
public Name ShowBusinessAlias { get; set; }
public Address Address { get; set; }
}
public class Name
{
public Person Person { get; set; }
public string First { get; set; }
public string Last { get; set; }
}

  Mapping

  輸出HbmMapping的映射字符串結(jié)果:

BidirectionalRelation  結(jié)語

  這篇文章展示ConfORM的Components語義應(yīng)用,映射了一些Domain示例。接下來繼續(xù)介紹ConfORM。Are you ConfORM?

  參考資料

  Fabio Maulo:ConfORM:“Mapping” Components

NET技術(shù)NHibernate3剖析:Mapping篇之ConfORM實戰(zhàn)(5):Component語義,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚洲精品资源网在线观看 | 亚洲成年人在线观看 | 免费网站在线观看国产v片 免费完整版观看 | 精品日产1区2卡三卡麻豆 | 娇妻玩4P被三个男人伺候电影 | 亚洲综合网国产精品一区 | 日本A级作爱片金瓶双艳 | 同桌别揉我奶了嗯啊 | 叮当成人社区 | 久久一er精这里有精品 | 日本高清色片 | 兽皇VIDEO另类HD | 帝王被大臣们调教高肉 | 迅雷成人下载 | 亚洲区视频 | 男子扒开美女尿口做羞羞的事 | 哒哒哒高清视频在线观看 | 香蕉免费高清完整 | 超碰免费视频在线观看 | 青青伊人国产 | 国产午夜高潮熟女精品AV | 九九九精品国产在线 | 欧美精品成人a多人在线观看 | 亚洲精品高清中文字幕完整版 | 91精品免费久久久久久久久 | 女生下面免费看 | 久久精品小视频 | 粗大分开挺进内射 | 国自产精品手机在线视频 | 久久re热在线视频精99 | 激情内射亚州一区二区三区爱妻 | 99视频在线观看视频 | 国产a视频视卡在线 | 美女拉开腿让男生桶到爽 | 极品色αv影院 | 好紧好湿太硬了我太爽了小说 | 伦理片在线线手机版韩国免费6 | 午夜精品久久久久久影视riav | 迅雷哥在线观看高清 | 捏揉舔水插按摩师 | 久久4k岛国高清一区二区 |