实体框架:来自服务的导航属性
本文关键字:导航 属性 服务 框架 实体 | 更新日期: 2023-09-27 18:14:48
我的一些Db表已经移出了我的数据库,它们的数据现在可以通过API调用提供给我。因此,在下面的Student
类中,Subject
表已被移出,我仍然有SubjectId
,我必须用它查询API并获取Subject数据。
public class Student
{
public Subject Subject { get; set; }
}
有什么我可以做与实体框架,通过它我不必改变我的代码,并访问导航属性student.Subject
将查询我的API的数据,并返回给我吗?
最简单的方法是将Subject属性标记为[NotMapped],这样EF就不会尝试搜索DB表
然后写Property get来查询API。这将涵盖您想要的功能。 public class Student
{
[NotMapped]
public Subject Subject { get {
return QueryAPIHere(this.SubjectId);
} set; }
}
如果你想避免每次访问属性时调用API,你可以将它存储在私有变量
中 [NotMapped]
private Subject _subject
public Subject Subject
{
get
{
if (this._subject == null)
this._subject = QueryAPI(this.SubjectId);
return this._subject;
}
set;
}