实体框架 - 导航属性外部源

时间:2017-05-01 18:47:21

标签: c# entity-framework

我的DBContext中有一个类(Employee),我希望通过导航属性与另一个类(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 个答案:

答案 0 :(得分:1)

你不能这样做...
由于Office实际上不是您的数据库模型的一部分,因此您不能拥有像OfficeCode这样的“外键”属性。 但是,没有什么可以阻止您在Employee类上添加GetOfficeByOcd方法。

也就是说,由于GetOfficeByOcd方法并不真正依赖于Employee,因此最好将其移动到更合适的位置(如Office类或OfficeService)