EF6代码首先到6NF表

时间:2016-03-29 10:05:32

标签: c# entity-framework-6 6nf

我有以下数据库模型

Entity
Id, ...

PropertyType
Id, Name, DataType, ...

EntityProperty
Id, EntityId, PropertyTypeId

PropertyValueString
Id, Value

PropertyValueDateTime
ID, Value

我首先使用EF6代码将我的实体映射到此数据模型

class Entity {
  public Guid Id { get; set; }
  ...
}

class PropertyType {
  public Guid Id { get; set; }
  public string Name { get; set; }
  public Type DataType { get; set; }
  ...
}


class EntityProperty {
  public Guid Id { get; set; }
  public Guid EntityId { get; set; }
  public Entity Entity { get; set; }
  public Guid PropertyTypeId { get; set; }
  public PropertyType PropertyType { get; set; }
  public string StringValue { get; set; }
  public DateTime? DateTimeValue { get; set; }
}

将实体和PropertyType类映射到各个表是直截了当的。 EntityProperty使用

进行映射
Map(m => m.ToTable("EntityProperty").Properties(p => new { p.Id, p.EntityId, p.PropertyTypeId });
Map(m => m.ToTable("PropertyValueString").Properties(p => new { p.Id, p.StringValue });
Map(m => m.ToTable("PropertyValueDateTime").Properties(p => new { p.Id, p.DateTimeValue });

如何将我的EntityProperty映射到PropertyValueStringPropertyValueDateTime表,具体取决于哪个字段有值?此外,包含EntityProperty时生成的查询应LEFT JOIN与PropertyValueString和PropertyValueDateTime。

这是否可以使用Entity Framework?

0 个答案:

没有答案