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

  • SEARCH
  • Home
  • 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 7624073
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 31, 20262026-05-31T04:52:03+00:00 2026-05-31T04:52:03+00:00

Please take a look at following code: public class SomeEntity { public int Id

  • 0

Please take a look at following code:

public class SomeEntity
{
    public int Id { get; set; }

    public int UserId { get; set; }
    public virtual User User { get; set; }
}

public class SomeEntityA : SomeEntity
{
    public int Number { get; set; }
}

public class SomeEntityB : SomeEntity
{
    public string Text { get; set; }
}

public class User
{
    public int Id { get; set; }
    public int Username { get; set; }

    public virtual ICollection<SomeEntityA> SomeEntitiesA { get; set; }
    public virtual ICollection<SomeEntityB> SomeEntitiesB { get; set; }
}

My question is – is there a way to set the FluentApi to make relationships shown above work properly? Currently when new SomeEntityA object is being added to User, EF creates a new record in SomeEntities table with properly set User_Id FK, however in SomeEntitesA which is an inherited table, there’s also a FK property User_Id – set as null and when I try to get SomeEntitesA collection from User object – it’s empty. I do realize why that happens, but I’m not sure whether there’s a way to fix this? The only solution that comes to my mind at this moment is to replace following code:

    public virtual ICollection<SomeEntityA> SomeEntitiesA { get; set; }
    public virtual ICollection<SomeEntityB> SomeEntitiesB { get; set; }

with:

    public virtual ICollection<SomeEntity> SomeEntitiesA { get; set; }
    public virtual ICollection<SomeEntity> SomeEntitiesB { get; set; }

and configure FluentApi.

Any thoughts would be highly appreciated.

  • 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-31T04:52:04+00:00Added an answer on May 31, 2026 at 4:52 am

    Have a look at this question/answer, the classes have exactly the same structure as yours and there is a detailed explanation why things are not working as expected:

    Is inheritance of navigation properties supported?

    As Slauma pointed out, there is a rather simple solution to get around this by doing the following (copied from the linked answer and fit to your example):

    public class User
    {
        public int Id { get; set; }
        public int Username { get; set; }
    
        // this is necessary to have access to the related SomeEntityAs/SomeEntityBs
        // also it cant be private otherwise EF will not overload it properly
        public virtual ICollection<SomeEntity> SomeEntities { get; set; }
    
        public IEnumerable<SomeEntityA> SomeEntitiesA { get { return this.SomeEntities.OfType<SomeEntityA>(); } }
        public IEnumerable<SomeEntityB> SomeEntitiesB { get { return this.SomeEntities.OfType<SomeEntityA>(); } }
    }
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Please take a look at the following simple code: class Foo { public: Foo(){}
Please take a look at the following code: Public Sub Method(Of TEntity As EntityObject)(ByVal
Please take a look at this code: class Foo { public $barInstance; public function
Please take a look at the following code: public static void main(String[] args) {
Please take a look on the following example: class Base { protected: int m_nValue;
Please take a look on the following pseudo-code: boolean blocked[2]; int turn; void P(int
Please take a look at this code: template<class T> class A { class base
Please take a look at following code: #include <stdio.h> #include <iostream> using namespace std;
Would someone please take a look at the following code fragments (all from one
please take a quick look at this website I get the following error message

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.