我正在尝试使用 Asp.Net MVC和实体框架创建一个应用程序。在此应用程序中,我有一个用户有一个包,为了在它们之间建立关系,我使用了HasOptional
但是当我尝试查找用户时,包不会返回与用户联接。
为什么会发生这种情况,我该如何解决这个问题?
用户
public class User
{
public long id { get; set; }
public Package package {get;set;}
包
public class Package
{
public int id { get; set; }
public String name {get;set;}
地图
public class UserMap : EntityTypeConfiguration<User>{
public UserMap(){
this.ToTable("Users");
this.HasKey<long>(u => u.id);
this.HasOptional<Package>(u => u.package);
}
}
用
//it should to return the Package too but still doesn't
User user = context.users.FirstOrDefault(u => u.id == userSession.id);
Debug.writeLine("Package is null: " + user.package == null); //it is returning true
EF6.x 中的一对一配置方式如下:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<User>()
.HasOptional(p => p.package)
.WithRequired();
}