【问题标题】:Entity Framework: Navigation Property from a service实体框架:来自服务的导航属性
【发布时间】:2016-10-24 09:14:08
【问题描述】:

我的一些 Db 表已移出我的数据库,现在我可以通过 API 调用获得它们的数据。所以在下面的Student 类中,Subject 表已经被移出,我仍然有SubjectId,我必须使用它来查询 API 并获取主题数据。

public class Student
{ 
    public Subject Subject { get; set; }
}

我可以用 EntityFramework 做些什么,通过它我不必更改我的代码,访问 Navigation 属性 student.Subject 会查询我的 API 以获取数据并将其返回给我?

【问题讨论】:

  • 如果您创建了可以访问的实例。你的问题不清楚........
  • 当我们编写 student.Subject 时,它会从 EF 中的数据库中获取数据,我想要的是它从服务 API 中获取数据而不是那些数据
  • 如果您可以访问 api,您可以安装 EF 并在那里编写查询
  • Student 的数据将来自使用实体框架的我们自己的数据库,但 Subject 的东西来自 API

标签: c# .net sql-server asp.net-mvc entity-framework


【解决方案1】:

最简单的做法是将主题属性标记为 [NotMapped],这样 EF 就不会尝试搜索数据库表

然后编写您的属性 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;
    }

【讨论】:

  • 谢谢 Anestis,我会试试的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-29
  • 2016-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多