Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 3784550
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 19, 20262026-05-19T11:23:38+00:00 2026-05-19T11:23:38+00:00

So, I have two tables, call them User and Item. I want each user

  • 0

So, I have two tables, call them User and Item. I want each user to be able to flag (like “staring” things in the Google universe) any item.

Now, from a set-theoretic perspective it should be reasonable to store this as a simple relation between users and items. Call this new table UserItemFlags. The table should have two columns; one with foreign keys to the User table, the other with foreign keys to the Item table. If user U flags item I, this is then represented by the presence of the row (U, I) in the UserItemFlags table.

Now, my problem with expressing this in Fluent-NHibernate is this: I can’t seem to understand what to do with the Id mapping. Ideally, I would have no ID, because there is nothing more to it than presence or absence of this relation between a User and an Item. A natural consequence of this model is that it’s impossible to have duplicate rows in the table. This is a desired feature.

using FluentNHibernate.Mapping;

public class UserItemFlagsMapping : ClassMap<UserItemFlags>
{
    public UserItemFlagsMapping()
    {
        // Aaaa! I must have an Id!
        References(x => x.User).Not.Nullable();
        References(x => x.Item).Not.Nullable();
    }
}

I’d be happy for any pointers in the right direction, even if they would require me to abandon Fluent for this specific case.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-19T11:23:39+00:00Added an answer on May 19, 2026 at 11:23 am

    What do you mean you don’t have an ID? You have a composite ID right there of both user ID and item ID.


    Edit: The answer is in this comment:

    The Id() method is only meant for single column primary keys. You want to use CompositeId() instead. Something like the following: CompositeId().KeyReference(x => x.User, “user_id”).KeyReference(x => x.Item, “item_id”; Obviously, if you’re using default convention mapping, you don’t need the column names.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have two tables (let's call them TradingWindows and VolumeData). Each row of TradingWindows
I have two tables; let's call them TableA and TableB. Each element of TableB
I have a database with two tables - let's call them Foo and Bar.
I have three tables, we'll call them table1, table2, and table3. Lets say each
I have basic tables one and two. Let`s call them tbl1 and tbl2. tbl1
I have two tables, let's call them table1 and table2 . They both have
I have two tables, both named Language in two different schemas, lets call them
Suppose I have two tables in a parent - child relationship. Let's call them
I have two tables - let's call them dbo.ValuesToReduce and dbo.Reserve The data in
I have two tables, we'll call them Foo and Bar , with a one

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.