两个表被视为一个

时间:2011-06-07 09:37:54

标签: c# .net entity-framework

我有两张这样的表:

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以便将它们视为一个?

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

4 个答案:

答案 0 :(得分:2)

您正在寻找名为Entity splitting的高级映射。

答案 1 :(得分:1)

答案 2 :(得分:1)

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

  1. 将两个表添加为模型的两个独立实体
  2. 将标量值从Table2实体剪切为Table1实体
  3. 删除Table2实体
  4. 在Table1实体的Table Mapping选项中,将Table2-fields映射到Table2
  5. 有关更详细的说明,您可以have a look at this blog post

答案 3 :(得分:0)

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