具有相同结构实体框架的多个表

时间:2016-07-14 11:10:00

标签: c# .net entity-framework

我们有一个包含多个具有相同结构的表的数据库

表1

密钥ID ........

表2

密钥ID .......

根据配置,表的数量可以是动态的。

我正在尝试将数据访问层升级到实体框架。我创建了一个表示表结构的类。我的计划是对所有具有相同结构的表使用相同的类。 Bubt我找不到关于如何做到这一点的足够信息。我的理解是我可以只将一个类映射到一个表。

有没有办法用实体框架来实现这个目标?

3 个答案:

答案 0 :(得分:5)

简单方法:拥有一个包含所有属性的抽象基类,并映射具体类型:

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
{
}

我没有回答这个设计是好还是坏(我不会说你喜欢它,就像你解释的那样),我只是在回答这个问题

答案 1 :(得分:0)

如果所有表的列都相同,则可以通过传递相同的类,在流畅的api中提供表名和结构(主键,外键关系等)。

将实体类型映射到数据库中的特定表

Department的所有属性都将映射到名为t_ Department的表中的列。

modelBuilder.Entity<Department>()  
    .ToTable("t_Department");

您还可以像这样指定架构名称:

modelBuilder.Entity<Department>()  
    .ToTable("t_Department", "school");

Reference for further details

答案 2 :(得分:0)

现在,对于我已经在EF Core中成功使用的完全不同的方法:

创建一个参数化的存储过程,该过程使用一些动态SQL返回所需的实际表并使用FromSql功能。

相关问题