【问题标题】:Multiple Tables With Same Structure Entity Framework具有相同结构实体框架的多个表
【发布时间】:2018-12-22 18:33:10
【问题描述】:

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

表 1

密钥 ID ........

表 2

密钥 ID ....

表的数量可以根据配置动态变化。

我正在尝试将数据访问层升级到实体框架。我创建了一个代表表结构的类。我的计划是对所有具有相同结构的表使用相同的类。但是我找不到有关如何执行此操作的足够信息。我的理解是我只能将一个类映射到一张表。

有没有什么方法可以使用实体框架来实现这一点?

【问题讨论】:

  • 为什么不规范化你的数据库表呢?
  • 为所有具有相同结构的表创建一个视图。将 EF 实体映射到此视图。
  • @IntoNET:数据库很复杂,这个不能改。

标签: c# .net entity-framework


【解决方案1】:

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

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

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

【讨论】:

  • 感谢您的回复。会试试这个。
  • 我已经决定这样做,但使用接口而不是抽象类。
【解决方案2】:

现在我在 EF Core 中成功使用了一种完全不同的方法:

创建一个参数化的存储过程,它使用一些动态 SQL 来返回您想要的实际表并使用 FromSql 功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多