将类映射到具有不同表名但具有相同列结构的表

时间:2014-11-20 01:02:05

标签: c# linq

我有超过10个具有相同列结构但不同的表名的SQL表。我希望能够使用LINQ来处理表中的数据。是否有可能像我通常那样创建一个对表结构进行建模的类,但却没有定义表名?有没有办法将LINQ与具有相同结构但名称不同的表一起使用?

1 个答案:

答案 0 :(得分:2)

使用EF Code First,您可以动态地将实体映射到不同的表:

public class OrderContext : DbContext
{
    private readonly string _tableName;

    public OrderContext(string tableName)
        : base("name=OrderContext")
    {
        _tableName = tableName;
    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Order>().ToTable(_tableName);

        base.OnModelCreating(modelBuilder);
    }

    public ICollection<Order> Orders { get; set; }
}

用法:

var orders = new OrderContext("Orders").Orders;
var legacyOrders = new OrderContext("LegacyOrders").Orders;
相关问题