Satish
Satish

Reputation: 473

Multiple Tables With Same Structure Entity Framework

We have a database with multiple tables with Same structure

Table 1

Key ID ........

Table 2

Key ID .......

The number of tables can be dynamic based on configuration.

I am trying to upgrade the data access Layer to Entity framework. I have created one class representing the structure of the table. My Plan is to use the same class for all the tables with same structure. Bubt I could not find enough information on how to do this. What I understood is that I can map one class to one table only.

Is there any way to achieve this using entity framework?

Upvotes: 10

Views: 18565

Answers (3)

Anthony Geoghegan
Anthony Geoghegan

Reputation: 1

Since EF Core 7.0 the new TPC (Table per concrete type) mapping scheme seems to be relevant to this issue. When the TPC mapping scheme is invoked Each concrete class can map to an individual table without any weird foreign key references or constraint issues. I found details here

Upvotes: 0

Greg Gum
Greg Gum

Reputation: 38149

And now for a completely different approach which I have used successfully in EF Core:

Create a parameterized stored procedure which uses some dynamic SQL to return the actual table you want and use the FromSql feature.

Upvotes: 0

Jcl
Jcl

Reputation: 28272

The easy way: have an abstract base class with all the properties, and map concrete types:

public abstract class BaseClass
{
   public int Id { get; set; }
   public string StringField { get; set; }
   /* Other fields */ 
}

[Table("Table1")]
public class Table1 : BaseClass
{
}

[Table("Table2")]
public class Table2 : BaseClass
{
}

I'm not answering whether that design is good or bad (I wouldn't say I like it as you explained it), I'm just answering the question

Upvotes: 33

Related Questions