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