假设我有这个模型:
class Teacher
{
public string Name { get; set; }
public IEnumerable<Student> Students { get; set; }
}
class Student
{
public string Name { get; set; }
public IEnumerable<Teacher> Teachers { get; set; }
}
通过某种算法,用户只能看到教师和学生的子集,在这个例子中,我只能看到名字与我的字母相同的教师和学生。所以我想要这样的东西:
var myViewableTeachers = persistenceStore.Teachers();
将返回例如“Joyce”,Jonas“和”Juja“但不是”Steve“,”Bill“或”Zaphod“
现在假设教师“乔伊斯”有一个名为“阿诺德”,“贝弗利”,“乔丹”,“杰罗姆”和“扎克”的学生集合。
是否存在持久性引擎或OR / M,以确保当我访问Joyce学生时,它只会为我返回“Jolene”和“Jerome”,而“Arnold”则会返回名为“Annabelle”的用户?< / p>
答案 0 :(得分:0)
在我看来,这不是持久性引擎/ ORM的工作。 ORM的工作是将关系世界映射到面向对象的世界,即它从您的数据库映射到您的对象。
你可以用两种截然不同的方式做到这一点:
我会使用选项2,除非它会导致大量不必要的数据传输。