Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将类映射到具有不同表名但具有相同列结构的表_C#_Linq - Fatal编程技术网

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

C# 将类映射到具有不同表名但具有相同列结构的表,c#,linq,C#,Linq,我有10多个SQL表,它们的列结构相同,但表名不同。我希望能够使用LINQ处理表中的数据。是否可以创建一个像我通常那样对表结构建模但不定义表名的类?有没有一种方法可以将LINQ用于具有相同结构但不同名称的表?首先使用EF代码,您可以将实体动态映射到不同的表: public class OrderContext : DbContext { private readonly string _tableName; public OrderContext(string tableNam

我有10多个SQL表,它们的列结构相同,但表名不同。我希望能够使用LINQ处理表中的数据。是否可以创建一个像我通常那样对表结构建模但不定义表名的类?有没有一种方法可以将LINQ用于具有相同结构但不同名称的表?

首先使用EF代码,您可以将实体动态映射到不同的表:

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

我想实体框架会为我映射表,不是吗?首先使用EF代码,您可以动态地将实体映射到不同的表。我想我将使用EF,听起来不错。谢谢这样我就不用使用EF向导了?我只需输入创建集合的表的名称?@JonKittell:欢迎来到代码优先方法的奇妙而怪异的世界!:)您没有XML/EDMX文件,所有映射都是在C代码中进行的。这太棒了,我在ASP.NET MVC中使用过该向导,但不想在这个Windows窗体应用程序中使用它。很酷!是啊,巫师真是一团糟。无论如何,它将在EF的下一个主要版本(代号v7)中消失。
var orders = new OrderContext("Orders").Orders;
var legacyOrders = new OrderContext("LegacyOrders").Orders;