You need to create entitiy classes for every table you are using.

On Mon, Sep 28, 2020, 3:27 AM Alexander Zaytsev <[email protected]> wrote:

> You need to use KeyReference instead of KeyProperty. Then it should work.
>
> On Sun, Sep 27, 2020 at 9:11 PM Ezequiel De Luca <[email protected]>
> wrote:
>
>> Hi:
>> I am trying to map an object which ID is composed of two Foreign Keys.
>> Below is the Database Scripts
>> CREATE TABLE tbl_requests
>> (
>>      strID uniqueidentifier NOT NULL,
>>      …..
>>      CONSTRAINT pk_request PRIMARY KEY (strID),
>>  )
>> CREATE TABLE tbl_resources
>> (
>>      strCode uniqueidentifier NOT NULL default NEWID(),
>>      …..
>>      CONSTRAINT pk_resources PRIMARY KEY (strCode)
>> )
>> CREATE TABLE tbl_exceptions
>> (
>>      strRequest uniqueidentifier NOT NULL,
>>      strResource uniqueidentifier NOT NULL
>>      CONSTRAINT pk_exception PRIMARY KEY (strRequest, strResource),
>>      CONSTRAINT fk_resourcerequests FOREIGN KEY (strRequest) REFERENCES
>> tbl_requests(strID),
>>      CONSTRAINT fk_resources FOREIGN KEY (strResource) REFERENCES
>> tbl_resources(strCode)
>> )
>> The Entity/Bean/Domain that I created looks like follows:
>> public class ExceptionEntity
>> {
>>      public virtual RequestEntity objRequest { get; set; }
>>      public virtual ResourceEntity objResource { get; set; }
>> }
>> I am having a hard time trying to create the Mapping, so far what I found
>> online were examples of composite key with string properties, but nothing
>> with keys of objects. I was attempting the following,
>> public ExceptionMap()
>> {
>>      Table("tbl_exceptions");
>>      CompositeId()
>>           .KeyProperty(x => x.objRequest, "strRequest")
>>           .KeyProperty(x => x.objResource, "strResource");
>> }
>> but I got this exception:
>>
>> MappingException: Could not determine type for:
>> Project.entities.RequestEntity, Project, Version=1.0.0.0, Culture=neutral,
>> PublicKeyToken=null, for columns: NHibernate.Mapping.Column(strRequest)
>> If I replace key properties with the full path of the Ids ex:
>> .KeyProperty(x => x.objRequest.strID, "strRequest") I get an error that the
>> get method is not defined. Is there any way to achieve this? Should I set 4
>> properties on my entity 2 string for the keys and 2 objects and make the
>> KeyProperty to the strings and References to the Objects?
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "nhusers" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/nhusers/70194a7a-d950-4f66-8155-e743d9d35baen%40googlegroups.com
>> <https://groups.google.com/d/msgid/nhusers/70194a7a-d950-4f66-8155-e743d9d35baen%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
> --
> You received this message because you are subscribed to the Google Groups
> "nhusers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/nhusers/CAMKuk26uaLS8Don3bzESSMEjV9D2UUcLnf3%2Bjj6_sAWe%3D65O%3Dg%40mail.gmail.com
> <https://groups.google.com/d/msgid/nhusers/CAMKuk26uaLS8Don3bzESSMEjV9D2UUcLnf3%2Bjj6_sAWe%3D65O%3Dg%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/nhusers/CAEs09mS%3DEMmTgJGWV5i93%3DOeOYAsj%2Bzsx2TAUXE3CeEGaoeaSQ%40mail.gmail.com.

Reply via email to