自EF6升级以来流畅的反向属性问题

时间:2015-10-30 14:01:19

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

自从EF5升级到EF6后,我们遇到了一个问题。我们曾经有这样的模型:

[Table("tblOrganisations")]
public class Organisation
{

...

    [InverseProperty("OrganisationId")]
    public virtual Client Client { get; set; }
    public int? ClientId { get; set; }

...     }

[Table("tblClients")]
public class Client : IBelongTo, IHaveADescription, IEntity<int>, IAuditable
{
    [Column("OrgID")]
    public int OrganisationId { get; set; }
    public virtual Organisation Organisation { get; set; }
}

然后Fluent语法管理连接:

        modelBuilder.Entity<Organisation>()
                    .HasOptional(x => x.Client);

在EF5之前哪个工作正常。当我们升级到EF6时,似乎我们不再能够将基类型用于导航属性(即OrganisationId,但我们只能使用组织之类的对象)。

    [InverseProperty("Organisation")]
    public virtual Client Client { get; set; }

这很好,除非它创建这样的SQL,这是无效的,因为我们希望将OrgID与orgID匹配而不是针对orgId的clientId: INNER JOIN [dbo]。[tblOrganisations] AS [Extent2] ON [Extent1]。[ClientID] = [Extent2]。[OrgID]

任何人都可以告诉我们为什么会发生这种情况以及我们如何解决它?

0 个答案:

没有答案