天天看點

nhibernate學習之集合組合依賴

1.學習目标

   還是學習compenent的用法,上節實作了簡單字段的組合,這節中将讨論兩個問題:1.依賴對象有一個指向容器對象的引用。2。集合依賴

2.開發環境和必要準備

   開發環境為:windows 2003,Visual studio .Net 2005,Sql server 2005 developer edition

3.通過parent為依賴組合對象映射一個指向容器對象的引用

  CompositeUser.cs 

nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴

public class CompositeUser

nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴

{

nhibernate學習之集合組合依賴

        int _uid;

nhibernate學習之集合組合依賴

        UserName _name;

nhibernate學習之集合組合依賴

        public int Uid

nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴

            get

nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴

                return _uid;

nhibernate學習之集合組合依賴

            }

nhibernate學習之集合組合依賴

            set

nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴

                _uid = value;

nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴

        }

nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴

        public UserName Name

nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴

                return _name;

nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴

                _name = value;

nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴

    }

  UserName.cs

nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴

 public class UserName

nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴

        private string _firstName;

nhibernate學習之集合組合依賴

        private string _lastName;

nhibernate學習之集合組合依賴

        CompositeUser _user;

nhibernate學習之集合組合依賴

        public string FirstName

nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴

                return _firstName;

nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴

                _firstName=value;

nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴

        public string LastName

nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴

                return _lastName;

nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴

                _lastName = value;

nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴

        public CompositeUser User

nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴

                return _user;

nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴

                _user = value;

nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴

映射檔案:CompositeUser.hbm.xml

nhibernate學習之集合組合依賴

<?xml version="1.0" encoding="utf-8" ?>

nhibernate學習之集合組合依賴

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">

nhibernate學習之集合組合依賴

    <class name="NhibernateSample1.CompositeUser,NhibernateSample1" table="CompositeUser" lazy="false">

nhibernate學習之集合組合依賴

        <id name="Uid" column="Uid" unsaved-value="0">

nhibernate學習之集合組合依賴

            <generator class="native" />

nhibernate學習之集合組合依賴

        </id>

nhibernate學習之集合組合依賴

        <component name="Name" class="NhibernateSample1.UserName,NhibernateSample1">

nhibernate學習之集合組合依賴

            <parent name="User"></parent>

nhibernate學習之集合組合依賴

            <property name="FirstName" column="FirstName"></property>

nhibernate學習之集合組合依賴

            <property name="LastName" column="LastName"></property>

nhibernate學習之集合組合依賴

        </component>

nhibernate學習之集合組合依賴

    </class>

nhibernate學習之集合組合依賴

</hibernate-mapping>

注意parent是指向容器對象的引用

加載一個CompositeUser對象,結果如圖

nhibernate學習之集合組合依賴

4. 集合組合依賴

Composite.cs

nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴

        ISet _userNames = new HashedSet();

nhibernate學習之集合組合依賴

        DateTime _birthDay = DateTime.Now;

nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴

        public ISet UserNames

nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴

                return _userNames;

nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴

                _userNames = value;

nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴

        public DateTime BirthDay

nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴

                return _birthDay;

nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴

                _birthDay = value;

nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴

UserName.cs

nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴

public class UserName

nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴

映射檔案CompositeUser.hbm.xml

nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴

        <set name="UserNames" table="UserNames" lazy="true">

nhibernate學習之集合組合依賴

            <key column="Uid"/>

nhibernate學習之集合組合依賴

            <composite-element  class="NhibernateSample1.UserName,NhibernateSample1">

nhibernate學習之集合組合依賴

                <property name="FirstName" column="FirstName"></property>

nhibernate學習之集合組合依賴

                <property name="LastName" column="LastName"></property>

nhibernate學習之集合組合依賴

            </composite-element >

nhibernate學習之集合組合依賴

        </set>

nhibernate學習之集合組合依賴

        <property name="BirthDay" type="DateTime"></property>

nhibernate學習之集合組合依賴
nhibernate學習之集合組合依賴

注意:Composite可以包含集合也可以不包含集合,上面這樣的配置就不包括集合,映射的屬性可以選擇為List,map,bag,idbag