繁体   English   中英

EF6将相似的表格映射到一个实体中

[英]EF6 mapping similar tables into one entity

我正在制作一个使用旧数据库的应用程序,首先使用EF6数据库.Net C#。

该数据库有两个版本:旧版本和新版本。 在新表中,对某些表进行了修改和重命名。 例如,旧的表格有:工作,订单,物料等,而新的表格有work_t,order_t和item_t。

对应表的内容非常相似,在新表中添加了一些新列,并删除了一些列。 因此,我的应用程序应该可以同时使用两种数据库,因为我只使用两种版本中都提供的列。

我想知道是否有任何合适的方法将那些表对隐藏在某个接口或某些东西后面,以免进行LINQ编码的2种实现。

这并不是完全从2个表中创建一个实体,因为一次在数据库中仅显示一个表。 我想用一段代码来解决其中一个相似的表。

这是我想要的一些伪代码:

    public workDTO GetWork(int workId)
    {
        MyEntities db = new MyEntities();

        // for old version it will go like
        var work = db.work.Where(a => a.id == workId); 

        // for new version it will go like
        var work = db.work_t.Where(a => a.id == workId); 

        return Mapper.Map(work, workDTO);
    }

因此,想法是两个表只有一种方法和一种LINQ实现。

是的,您可以通过在实体框架中提供列属性来实现:

在这里阅读

更新:

您可以使用.ToTable()方法:

modelBuilder.Entity()。ToTable(“ t_Department”);

来源:MSDN: http//msdn.microsoft.com/en-us/data/jj591617.aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM