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