Mine is here:

Error is :
NHibernate.MappingException: composite-id class must override Equals
(): Competency.Domain.AccessibleDocumentsDto
NHibernate.MappingException: Could not compile the mapping document:
(XmlDocument)

public class AccessibleDocumentsDto
    {
        public virtual int RoleId { get; set; }
        public virtual int DocId { get; set; }
        public virtual bool WithAccess { get; set; }
    }

 public class AccessibleDocumentsDtoMap :
ClassMap<AccessibleDocumentsDto>
    {
        public AccessibleDocumentsDtoMap()
        {
            WithTable("dbo.RoleDocument");
            UseCompositeId()
                .WithKeyProperty(x => x.RoleId, "RoleID")
                .WithKeyProperty(x => x.DocId, "DocID");
            Map(x => x.WithAccess)
                .FormulaIs("case when AllowFullAccess = 1 or AllowEdit
= 1 or AllowRead = 1 or AllowView = 1 then 1 else 0 end");
        }
    }


XMB File:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
  <class name="Entities.RoleDocument, Entities"
table="dbo.RoleDocument">
    <composite-id name="Id" class="Entities">
                  <key-property name="DocID" column="DocID" 
type="System.Int32"/>
                  <key-property name="RoleID" column="RoleID" 
type="System.Int32"/>
    </composite-id>
                <property name="AllowEdit" column="AllowEdit" 
type="System.Boolean"
not-null="true"/>
                <property name="AllowFullAccess" column="AllowFullAccess"
type="System.Boolean" not-null="true"/>
                <property name="AllowRead" column="AllowRead" 
type="System.Boolean"
not-null="true"/>
                <property name="AllowView" column="AllowView" 
type="System.Boolean"
not-null="true"/>
  </class>
</hibernate-mapping>


SCHEMA:
CREATE TABLE [dbo].[RoleDocument](
        [RoleID] [int] NOT NULL,
        [DocID] [int] NOT NULL,
        [AllowFullAccess] [bit] NOT NULL CONSTRAINT
[DF_RoleDocument_AllowFullAccess]  DEFAULT (0),
        [AllowEdit] [bit] NOT NULL CONSTRAINT [DF_RoleDocument_AllowEdit]
DEFAULT (0),
        [AllowRead] [bit] NOT NULL CONSTRAINT [DF_RoleDocument_AllowRead]
DEFAULT (0),
        [AllowView] [bit] NOT NULL CONSTRAINT [DF_RoleDocument_AllowView]
DEFAULT (0),
 CONSTRAINT [PK_RoleDocument] PRIMARY KEY CLUSTERED
(
        [RoleID] ASC,
        [DocID] ASC
)WITH (PAD_INDEX  = OFF, IGNORE_DUP_KEY = OFF, FILLFACTOR = 90) ON
[PRIMARY]
) ON [PRIMARY]


But if I use this Map:

    public class AccessibleDocumentsDtoMap :
ClassMap<AccessibleDocumentsDto>
    {
        public AccessibleDocumentsDtoMap()
        {
            WithTable("dbo.RoleDocument");
               Id(x => x.RoleId)
                    .TheColumnNameIs("RoleID")
                    .GeneratedBy.Assigned();
               Map(x => x.DocId)
                    .ColumnName("DocID")
                    .Not.Nullable();
            Map(x => x.WithAccess)
                /.FormulaIs("case when AllowFullAccess = 1 or
AllowEdit = 1 or AllowRead = 1 or AllowView = 1 then 1 else 0 end");
        }
    }

All returned results are all duplicates, If we say it returns 100
records, all that 100 are identical. =(


I was suppose to ask you on twitter, if there are writing about
"UseCompositeId()" =)




On Mar 28, 2:34 am, Matt <[email protected]> wrote:
> So we are working on a Legacy Database that has some interesting table
> setups.
>
> What we have is a class that contains a state and county.  Which we
> have mapped like so:
>
> UseCompositeID().WithKeyProperty(x => x.ID, "XXXXXX").WithKeyProperty
> (x => x.ID, "YYYYYY");
>
> So now the issue comes when we go to map to that Reference.
>
> The table we are mapping from has different column names to begin
> with, and the bridge table has FK on both the keys, where the table we
> are referencing from does not.
>
> I've tried many of the Reference ideas such as "WithColumnNames" but
> that throws an error and does not build.  If anyone could provide a
> little insight on what we may do to be able to fix this issue, it
> would be much appreciated.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Fluent NHibernate" group.
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/fluent-nhibernate?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to