通过EF6和Linq从相关表中检索数据

时间:2014-02-18 17:02:31

标签: c# sql linq entity-framework entity-framework-6

我使用Code First进程创建了几个SQL表。

public class Person
{
[Key]
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public TitleType Title { get; set; }
}
public class TitleType
{
public int Id { get; set; }
public string Name { get; set; }
}

在我的代码中,我使用以下语法来检索Person。

Person person= db.Persons.Find(id);

我可以正确访问此人的属性但不应该能够使用

访问TitleType Name属性
var MyTitle = person.Title.Name;

我的代码是第一个代码正确构造还是我需要更改某些关系? 目前它只返回一个null。


这是我的Context类

 public partial class MyContext : DbContext
{
    static MyContext()
    {
        Database.SetInitializer<MyContext>(null);
    }
    public MyContext()
        : base("Name=MyContext")
    {
    }
   public DbSet<Person> Persons{ get; set; }
   public DbSet<TitleType> TitleTypes { get; set; }

           protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
    }               
}

1 个答案:

答案 0 :(得分:1)

看起来您已禁用延迟加载。请尝试以下方式急切地加载Title属性内容:

Person person= db.Persons.Include("Title").FirstOrDefault(x => x.Id == id);