Reputation: 473
We have a database with multiple tables with Same structure
Key ID ........
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
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
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
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