2017-05-01 34 views
0

我有一个类(Employee)在我的DBContext中,我想通过导航属性与另一个类(Office)加入。 Office类是来自外部源的东西。这是可以轻松完成的事吗?实体框架 - 导航属性外部源

public class Employee 
{ 
    [Key] 
    public int EmployeeId { get; set; } 

    public string OfficeCode { get; set; } 

    public virtual Office Office { get; set; } 
} 

public class Office 
{ 
    public string OfficeCode { get; set; } 

    public string Name { get; set; } 
} 

public class MyContext : DbContext 
{ 
    public virtual IDbSet<Employee> Employees { get; set; } 

    public MyContext() : base("name=constring") 
    { 

    } 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     base.OnModelCreating(modelBuilder); 
    } 
} 

办公室可以收集:

Office GetOfficeByOcd(string ocd); 

回答

1

你不能做到这一点...
由于办公室是不是真的是你的数据库模型的一部分,你不能有“外键“像OfficeCode这样的属性。 尽管可以阻止您在Employee类中添加GetOfficeByOcd方法。

这就是说,由于GetOfficeByOcd方法并不真正依赖于雇员它可能会更好,将其移动到更合适的地方(如办公室类或OfficeService)

+0

这太糟糕了。谢谢你的澄清。 – DrivenTooFar