Fluent API - 在实体

时间:2018-06-05 22:24:09

标签: c# entity-framework

我有两个课程,FormFormFieldOption<T>。后者旨在表示<option>对象所代表的Web表单中<select>内的一组Form

public class Form
{
  public int Id { get; set; }
  public FormFieldOption<string> Status { get; set; }
  public FormFieldOption<string> Category { get; set; }
  public FormFieldOption<int> Severity { get; set; }
}
public class FormFieldOption<T>
{
  public int Id { get; set; }
  public string Description { get; set; }
  public bool Active { get; set; }
  public T Value { get; set; }
}

我正在为代码优先配置这些实体,如下所示:

public class FormFieldOptionStringConfiguration : EntityTypeConfiguration<FormFieldOption<string>>
{
  public FormConfiguration()
  {
    //configure here
  }
}

不幸的是,此时我发现我希望StatusCategory属性的配置存在差异。我无法找到一种方法来配置单独使用FormFieldOption类的属性。我怎么能这样做?

我提出的解决方案:

  • 创建一个新类,为每个属性提供FormFieldOption<T>并单独配置。
  • 创建一个接口IFormFieldOption<T>并为每次使用单独实现类。

我并不特别关心这些选项中的任何一个,因为感觉就像为每个表创建不同的配置而需要大量重复的代码。

1 个答案:

答案 0 :(得分:0)

事实证明您无法执行此操作。我最终要做的是为每个属性创建一个通用接口。