首页 > 解决方案 > C# 抽象/反射和 DbSet

问题描述

我正在设置一个 Net Core 页面,它使用几个 DbSet 作为一组 SQL 表的挂钩(每个表都有一个唯一的类名)。每个类都继承自我写的一个通用类——实例化类时,只设置通用类内部的变量——派生类主要是为了结构,后面会用到。请看下面的示例代码:

public class GeneralSet
{
   [Key]
   public Guid Id {get; set;}
   public string set { get; set; }
   public string userID { get; set; }
}

public class SpecificSetOne : GeneralSet
{
    public SpecificSetOne(string _set, string _userID) : base(_set, _userID)
    {
    }
    public string otherVariableUsedLater {get; set;}
}

public class SpecificSetTwo : GeneralSet
{
    public SpecificSetTwo(string _set, string _userID) : base(_set, _userID)
    {
    }
    public string otherVariableUsedLaterWithDifferentName {get; set;}
}

我的 DbContext 设置如下:

public class SetDbContext : DbContext
{
   public SetDbContext(DbContextOptions<SetDbContext> options) :
      base(options)
   {
   }

   public DbSet<SpecificSetOne> SetOneData { get; set; }
   public DbSet<SpecificSetTwo> SetTwoData { get; set; }
 }

我的控制器看到通过 url 发送的字符串变量“set”。

我目前正在编写一个存储库来控制表的 CRUD 功能。我试图将它全部包含在一个存储库中,并根据通过该 url 传入的集合字符串为特定集合调用适当的 CRUD 功能。这在c#中可能吗?我一直在审查反思,但不确定我想要的是否可行或可取。

非常感谢,希望这有点清楚。

标签: c#reflection.net-core

解决方案


推荐阅读