新聞中心
映射組件
有時(shí)候我們會(huì)重復(fù)的用到一些數(shù)據(jù),但我們又沒(méi)有必要在用一個(gè)實(shí)例表示它們。比如地址,有家庭地址,工作地址,而地址就那個(gè)重復(fù)用到的數(shù)據(jù),我們可以把它獨(dú)立出來(lái)。在NHibernate中表示就是組件(component)
1 先定義一個(gè)Address類(lèi):
public virtual string Lines { get; set; }
public virtual string City { get; set; }
public virtual string State { get; set; }
public virtual string ZipCode { get; set; }
2 再定義一個(gè)customer類(lèi):
public virtual string Name { get; set; }
public virtual Address BillingAddress { get; set; }
public virtual Address ShippingAddress { get; set; }
注意到后面兩個(gè)屬性的數(shù)據(jù)類(lèi)型是Address
下面看看如何在對(duì)應(yīng)的配制文件中配制:


注意第二個(gè)compoent中有另外指定列名:
最終生成的表如下圖所示:
映射枚舉類(lèi)型
1 增加一個(gè)枚舉類(lèi):

public enum AccountTypes
{
Consumer,
Business,
Corporate,
NonProfit
}

2 增加一個(gè)要映射的類(lèi):

public class Account
{
public virtual Guid Id { get; set; }
public virtual AccountTypes AcctType { get; set; }
public virtual string Number { get; set; }
public virtual string Name { get; set; }
}

3 配置XML文件:


注意最后一個(gè)節(jié)點(diǎn)增加了type屬性,值為:NHibernate.Type.EnumStringType`1[[MappingEnums.AccountTypes,MappingEnums]], NHibernate
其中MappingEnums.AccountTypes為枚舉類(lèi),MappingEnums為對(duì)應(yīng)的命名空間。
分享題目:Nhibernate3.0cookbook學(xué)習(xí)筆記映射組件與枚舉類(lèi)型-創(chuàng)新互聯(lián)
路徑分享:http://fisionsoft.com.cn/article/dcdggp.html