两个表被视为一个

我有两个这样的表:

Table1(id, name) Table2(id_of_table_1, code) 

我不需要Table1或Table2的实体,但两者都需要一个实体:

 class Merge{ public virtual long id{get;set;} public virtual string name{get;set;} public virtual string code{get;set;} } 

如何将表加载到edmx以便将它们视为一个?

我没有对数据库的任何控制,我无法创建表或视图。

您正在寻找称为实体拆分的高级映射。

我认为这就是你所期待的: 如何:定义一个映射到两个表的单个实体的模型

简而言之,您需要这样做:

  1. 将两个表作为两个单独的实体添加到模型中
  2. 将标量值从Table2实体切割为Table1实体
  3. 删除Table2实体
  4. 在Table1实体的表映射选项中,将Table2字段映射到Table2

有关更详细的说明,您可以查看此博客文章 。

在Merge类中创建一个函数,该函数将类的属性写入相应的Table1和Table2 EDMX对象。 您的Merger类应该将这些EDMX对象引用为内部变量。 所以这个类就像你的2个表对象的包装器。