代码之家  ›  专栏  ›  技术社区  ›  Davita

TPT与外键问题

  •  0
  • Davita  · 技术社区  · 16 年前

    我对TPT继承+外键有问题。我正在开发一个支持多种语言的web应用程序,包括翻译动态内容。 这是我的桌子:

    Language
    =============
    Id, Name
    
    
    ProcessingAgent 
    ====================
    Id, some other fields 
    
    LocalizedProcessingAgent 
    =========================================================
    LocalizedProcessingAgentId, Name, Description, LanguageId
    

    正如你已经猜到的,我移动了应该从 ProcessingAgent LocalizedProcessingAgent . 在EF方面,我继承了TPT,所以 加工剂 是的基类 本地化处理剂 . 我是EF的新手,这是我的第一个项目,其中一个奇怪的行为让我很困惑。 当我从DB生成EF类时, 本地化处理剂 具有导航属性语言(因为 LanguageId Language

    LocalizedProcessingAgentRecord l = db.ProcessingAgents
        .OfType<LocalizedProcessingAgentRecord>().First(p => p.Id == 1);
    //l.Language is null
    

    所以外键导航属性由于某种原因没有被填充,我不知道为什么。 LocalizedProcessingAgentRecord . 有什么想法吗?

    以下是EF xml标记: http://dl.dropbox.com/u/3055964/ef.xml

    1 回复  |  直到 14 年前
        1
  •  1
  •   Yury Tarabanko    16 年前

    应该显式加载此导航属性。

    db.ProcessingAgents.Include("Language").OfType().First(p => p.Id == 1)
    

    Include