说,我有两个实体,Movement (id, #fromLocationId, #toLocationId)
, fromLocationId 和 toLocationId 是第二个实体Location (id, name)
的两个外键。我想写一个Breeze查询,检索所有与 fromLocationId 和 toLocationId 相关的位置名称的动作。这是我到目前为止所得到的:
var query = breeze.EntityQuery('movement').expand('location');
例如,当我调试它并检查第一条记录时,我发现它有一个 location()和 location1()属性。我可以从data[0].location().name()
检索 fromLocationId 的位置名称,但不能与 toLocationId 的位置名称相同,因为 location1()是空值。我甚至试过var query = breeze.EntityQuery('movement').expand('location, location1');
,但它仍然没有用。
关于如何解决这个问题的任何想法?提前谢谢。
修改
以下是.NET类:
[Table("Location")]
public partial class Location
{
public Location()
{
Movements = new HashSet<Movement>();
Movements1 = new HashSet<Movement>();
}
public int Id { get; set; }
[StringLength(250)]
public string Name { get; set; }
public virtual ICollection<Movement> Movements { get; set; }
public virtual ICollection<Movement> Movements1 { get; set; }
}
[Table("Movement")]
public partial class Movement
{
public int Id { get; set; }
public int FromLocationId { get; set; }
public int ToLocationId { get; set; }
public virtual Location Location { get; set; }
public virtual Location Location1 { get; set; }
}
在DbContext类中,关系如下所示:
modelBuilder.Entity<Location>()
.HasMany(e => e.Movements)
.WithRequired(e => e.Location)
.HasForeignKey(e => e.FromLocationId)
.WillCascadeOnDelete(false);
modelBuilder.Entity<Location>()
.HasMany(e => e.Movements1)
.WithRequired(e => e.Location1)
.HasForeignKey(e => e.ToLocationId)
.WillCascadeOnDelete(false);
感谢。
答案 0 :(得分:0)
var query = breeze.EntityQuery('movement').expand('location, location')
我想,Breeze明白这一点,expand()
中的第一个位置将与 fromLocationId 和第二个位置将与 toLocationId 相关。换句话说,添加与该公共实体相关的外键entity
。
希望它可以帮助别人。