我的数据库中有以下表结构:
适应症
- 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; }
那么,我应该如何更改我的映射来完成这项工作?
非常感谢!