nobodybutca: Have you overridden Equals in your entity?

On Sat, Mar 28, 2009 at 11:29 AM, nobodybutca <[email protected]> wrote:

>
> 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