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

C# 如何为EF中的特定类或实体指定数据库名称?,c#,entity-framework,database-design,architecture,entity-framework-4.1,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:

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

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; }
}

实体框架
DbContext
可以处理一个数据库。 然后,您应该为两个数据库设置两个
DbContext


更新:

我劝你不要那样做。换言之,您的数据库和模型应该协调一致。
“我喜欢这个词:)”

除此之外,我想它应该在服务类“层”中

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


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

如果您希望
用户
类继承
您的类,这就是它的方式

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

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

现在如何在另一个模型中继承此模型。与公共虚拟用户User{get;set;}类似,您的问题有些令人困惑。也许你应该试着用伪代码展示你想要完成什么?@steen:现在我编辑了这个问题,你可以看到它。那不是继承,那是导航属性。你想通过这样做来实现什么,你的问题是什么?=)对用户表在另一个数据库中,我需要获取该用户对象。这个答案可能会帮助您: