相同类型的ServiceStack Ormlite引用属性

时间:2014-10-27 21:10:01

标签: c# servicestack ormlite-servicestack

在ServiceStack OrmLite中,我有一个表定义如下:

public class Foo {
    [PrimaryKey]
    [AutoIncrement]
    public long Id { get; set; }

    [References(typeof(Bar))]
    public long BarAId { get; set; }

    [References(typeof(Bar))]
    public long BarBId { get; set; }

    [Reference]
    public Bar BarA { get; set; }

    [Reference]
    public Bar BarB { get; set; }
}

显然Bar是另一个表,BarA和BarB引用父表中的两个不同的条目。当我尝试解决BarA和BarB时,它们是相同的。有没有办法用两个相同类型的父对象进行自动引用,或者我是SOL,只需要手动连接吗?

谢谢, 克里斯

1 个答案:

答案 0 :(得分:1)

支持多个自我引用是added in this commit

为了能够使用正确的引用匹配字段,FK参考ID必须采用您在示例中也完成的格式{ReferenceProperty}Id

public class Foo 
{
    ...
    [References(typeof(Bar))]
    public long BarAId { get; set; }

    [Reference]
    public Bar BarA { get; set; }

    [References(typeof(Bar))]
    public long BarBId { get; set; }

    [Reference]
    public Bar BarB { get; set; }
}

此功能可从 v4.0.33 + now available on MyGet获得。