I've just spend 3 hours searching reading en trying to get this simple 
thing to work:

The Class (or Entity)
namespace EntryService.DAL.Domain
    [Serializable]
    public class ClientEntranceInfo 
    {
        public virtual ClientEntranceInfoKey Key { get; set; }
        public virtual int SportSchoolNumber
        {
            get { return Key.SportSchoolNumber; }
            set { Key.SportSchoolNumber = value; }
        }
        public virtual int PassNumber
        {
            get { return Key.PassNumber; }
            set { Key.PassNumber = value; }
        }
        public virtual int ClientNumber
        {
            get { return Key.ClientNumber; }
            set { Key.ClientNumber = value; }
        }
        
        public virtual DateTime EntranceTime { get; set; }
        
        public virtual DateTime UpdateDateTime { get; set; }

        public ClientEntranceInfo()
        {
            Key = new ClientEntranceInfoKey();
        }
    }

The ClientEntranceInfoKey 
namespace EntryService.DAL.CompositeKeys
     [Serializable]
    public class ClientEntranceInfoKey
    {
        public virtual int SportSchoolNumber { get; set; }
        public virtual int PassNumber { get; set; }
        public virtual int ClientNumber { get; set; }

        public ClientEntranceInfoKey()
        {
        }

        public ClientEntranceInfoKey(int sportSchoolNumber, int passNumber, 
int clientNumber)
        {
            SportSchoolNumber = sportSchoolNumber;
            PassNumber = passNumber;
            ClientNumber = clientNumber;
        }

        public override bool Equals(object obj)
        {
            if (ReferenceEquals(null, obj)) return false;
            if (ReferenceEquals(this, obj)) return true;
            if (obj.GetType() != typeof (ClientEntranceInfoKey)) return 
false;
            return Equals((ClientEntranceInfoKey) obj);
        }

        public bool Equals(ClientEntranceInfoKey other)
        {
            if (ReferenceEquals(null, other)) return false;
            if (ReferenceEquals(this, other)) return true;
            return other.SportSchoolNumber == SportSchoolNumber && 
other.PassNumber == PassNumber &&
                   other.ClientNumber == ClientNumber;
        }

        public override int GetHashCode()
        {
            unchecked
            {
                int result = SportSchoolNumber;
                result = (result*397) ^ PassNumber;
                result = (result*397) ^ ClientNumber;
                return result;
            }
        }
    }

The Database Table ClientEntranceInfo (MySQL)
SportSchoolNumber INT(11) PK NN
PassNumber INT(11) PK NN 
ClientNumber INT(11) PK NN
EntranceTime (DATETIME) NN

Very simple I would think.
So.....
var cfg = new MappingsConfiguration();
return Fluently.Configure()
   .Database(MySQLConfiguration.Standard.ConnectionString(ConnString))
   .Mappings(m => 
m.AutoMappings.Add(AutoMap.AssemblyOf<ClientEntranceInfo>(cfg)
        .Override<ClientEntranceInfo>(map => map.IgnoreProperty(cei => 
cei.UpdateDateTime))
        .Override<ClientEntranceInfo>(map 
=> map.CompositeId().ComponentCompositeIdentifier
                <ClientEntranceInfoKey>(x => x.Key).KeyProperty(
                     x => x.SportSchoolNumber).KeyProperty(
                     x => x.ClientNumber).KeyProperty(
                     x => x.PassNumber))))
                    .BuildSessionFactory();
            }

With cfg = instance of 
public class MappingsConfiguration : DefaultAutomappingConfiguration
    {
        public override bool ShouldMap(Type type)
        {
            return type.Namespace == "EntryService.DAL.Domain";
        }
    }

gives me this exception:
An association from the table ClientEntranceInfo refers to an unmapped 
class: EntryService.DAL.CompositeKeys.ClientEntranceInfoKey

Is there somewhere a simple example about this???



-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/nhusers/-/ZKeYsukFzPYJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en.

Reply via email to