1

我的数据库中有以下表结构:

适应症

  • ID
  • 类型
  • 实例名称
  • 字符串值
  • 整数值

我有这个班级结构

abstract class Indication  
{
    public int Id { get; set; }  
    public int Type { get; set; }
    public string InstanceName { get; set; }
}

class StringIndication : Indication  
{
    public string Value { get; set;}
}

class IntIndication : Indication  
{
    public intValue { get; set;}
}

我想将我的表映射到这个结构取决于 Type 属性。所以,这很容易:

modelBuilder.Entity<Indication>()
    .Map<IntIndication>(m => m.Requires("Type").HasValue(1))
    .Map<StringIndication>(m => m.Requires("Type").HasValue(2));
modelBuilder.Entity<IntIndication>().Property(c => c.Value).HasColumnName("IntValue");
modelBuilder.Entity<StringIndication>().Property(c => c.Value).HasColumnName("StringValue");

它工作得很好,但现在我想做一件事。我想拥有 InstanceName 的字典。所以,我创建另一个表

实例

  • ID
  • 姓名

,将指示表中的InstanceName更改为InstanceId。

但我不想要像这样的查找属性

public Instance Instance {get;set;}

在我的适应症表中。相反,我想保留

    public string InstanceName { get; set; }

并添加额外的

    public id InstanceId { get; set; }

那么,我应该如何更改我的映射来完成这项工作?

非常感谢!

4

1 回答 1

0

我相信这会有你的答案:

http://msdn.microsoft.com/en-us/data/jj715646.aspx 它涵盖了 EF 设计器 - 将实体映射到多个表(实体拆分)

于 2013-08-02T20:27:36.690 回答