如何为EF中的特定类或实体指定数据库名称?

时间:2012-07-17 11:13:26

标签: c# entity-framework database-design architecture entity-framework-4.1

我们正在使用两个数据库,因为我需要单独继承此模型或实体表。为此,如何在实体框架工作中指定特定类或实体表的数据库名称。有可能吗?

Database Name: "Test1"

public class User : BaseEntity
{        
    public string Email { get; set; }
    public string Password { get; set; }
}

现在如何将此模型设置为另一个模型中的导航属性。等,

Database Name: "Test2"

public class Test: BaseEntity
{
  public int UserId { get; set; }

  public virtual User User { get; set; }
}

public class BaseEntity
{
   public int Id { get; set; }
}

2 个答案:

答案 0 :(得分:2)

实体框架DbContext 可以处理一个数据库。 那么你的两个数据库应该有两个DbContext


更新:

我建议你不要这样做。换句话说,你你的数据库和你的模型应该和谐我喜欢这个词 :)”

除此之外,我认为它应该在Service class“Layer”中。

因此,在您的示例中,您假设有一个UserService类来获取您的用户,而不是在Test类中执行此逻辑。

另外需要注意的一点是:如果你的模型以这种方式连接在一起,那么你应该只有一个数据库。

答案 1 :(得分:0)

如果您希望从inherit班级User上课,那么就是这样的

public class Test: User 
{
   public int UserId { get; set; } 
}

现在Test类将拥有基类(User)的所有属性以及它自己的属性UserId