public class Teacher : Entity
{
public string Name { get; set; }
public int Age { get; set; }
}
public class Grade : Entity
{
public string Name { get; set; }
public List Teachers { get; set; }
}
对List Teachers的相应操作如下:
[TestCase]
public void Test()
{
Grade grade = new Grade() { Name = "Grade1"};
foreach (var teacher in teachers)
{
teacher.Save();
grade.Teachers.Add(teacher.ToDBRef());
}
grade.Save();
var teach = grade.Teachers.RefPick(teachers[0].Id);
var ts = grade.Teachers.RefPick(t => t.Age >= 50);
Assert.AreEqual(2, ts.Count);
Assert.AreEqual(teach.Id, teachers[0].Id);
Assert.AreEqual(teach.Name, teachers[0].Name);
}
除RefPick()外,并有RefExists()方法配合,已完成对List属性的操作。
目前保持IRefEntity接口不变,后续版本可能会删除该接口,因为其存在的意义不大了。
源码