C# Entityobject和外键

C# Entityobject和外键,c#,entity-framework,C#,Entity Framework,我将实体框架与sqlserver数据库一起使用。 由EntityObject表示的表包含其他表的外键。 例如: ArticleID|ArticleTitle|ArticleBody|CategoryID (key to another table) 我使用此查询返回Enityobject: public Article GetArticleById(int id) { var article = Articlerctx.Articles.Where(o=>o.Ar

我将实体框架与sqlserver数据库一起使用。
由EntityObject表示的表包含其他表的外键。
例如:

ArticleID|ArticleTitle|ArticleBody|CategoryID (key to another table)  
我使用此查询返回Enityobject:

 public Article GetArticleById(int id)
 {
        var article = Articlerctx.Articles.Where(o=>o.ArticleID==id).FirstOrDefault();          
        return article;
 }
但我也希望从其他表返回字段(join,在某些文件上,而不是所有文件上)

我是否需要为此定义新类(具有相应字段的类)

然后像这样返回:

 public ArticleFull GetArticleById(int id)
 {
    var ret = (from article in Articlerctx.Articles
                  select new ArticleFull
                  {
                     ArticleID = article.ArticleID,
                     Title = article.Title,
                     CategoryTitle = article.Articles_Categories.Title,
                   }).Where(o => o.ArticleID == id).FirstOrDefault();
     return ret;
 }

为每个领域设计新课程将是疯狂的

尝试使用。

如果我理解正确,则需要在EF中启用(默认情况下为true)

如果使用LazyLoading选项,则可以访问参考表的值,如

           EntityContext Context = new EntityContext();

           Context.ContextOptions.LazyLoadingEnabled = True;//by default it is true

           var article = Articlerctx.Articles.Where(o=>o.ArticleID==id).FirstOrDefault();          

           Article.Category.Id or any other field from category.

如果您不想使用LazyLoading()选项,那么@naspinski的答案将起作用。

上下文中没有EnableLzyLoading属性。。。不管怎么说,如果不包含其他表,它将不起作用。这是可行的,但只包含我需要的一个字段的整个表是否足够有效?或者使用new类和select new。。。