实体框架组合密钥问题

时间:2014-06-19 13:18:52

标签: c# entity-framework

尝试在Entity Framework中使用复合键时,我遇到了这个问题

  

附加信息:属性表达式&t; t =>新   <> f__AnonymousType0无效。表达式应代表a   property:C#:' t => t.MyProperty' VB.Net:'功能(t)t.MyProperty'。   指定多个属性时,请使用匿名类型:C#:' t =>   新的{t.MyProperty1,t.MyProperty2}' VB.Net:'功能(t)新增{   t.MyProperty1,t.MyProperty2}'。

代码是

 // Primary Key
 this.HasKey(t => new { t.ID, t.ID2, t.Version.Major, t.Version.Minor,  t.Version.Revision, t.Version.Build });

MODEL

  public int ID { get; set; }
  public short ID2 { get; set; }

  private VersionType m_Version;
  public VersionType Version
  {
     get
     {
        return m_Version;
     }
     set
     {
        SetProperty(ref m_Version, value, () => this.Version);
     }
  }



modelBuilder.ComplexType<VersionType>()

我认为它与在属性(Major等)之前声明Version类有关。

如果是的话,无论如何我可以解决这个问题吗?

干杯

1 个答案:

答案 0 :(得分:0)

我认为这可能会帮助你从之前的SO问题大致相同。 https://stackoverflow.com/a/5683788/78551了解他们如何定义模型和流畅的api配置。