"Multiple object sets per type are not supported" 尝试将数据从两个不同的表映射到单个域类型时出错
"Multiple object sets per type are not supported" error when trying to map data from two different tables to a single domain type
我是 Entity Framework 的新手,我尝试使用以下 table 结构设置代码优先
Table:客户
1. ClientID int
2. Name varchar(200)
3. Company varchar(200)
Table:ERPConnection
1. ClientID int (foreign key to client)
2. Server varchar(100)
3. Username varchar(100)
Table:ERPAdminConnection
1. ClientID int (foreign key to client)
2. Server varchar(100)
3. Username varchar(100)
如您所见,client->erpconnection 和 client->erpadminconnection 之间存在一对一的关系。 (注意:table不是我设计的,但我必须按原样使用它)
如您所见,我不需要两种不同的类型来表示 erp 和 erpadmin。
所以我想创建一个类似这样的上下文
public class ClientContext: DbContext
{
public DbSet<Client> Clients{ get; set; }
public DbSet<Connection> ERPConnection { get; set; }
public DbSet<Connection> ERPAdminConnection { get; set; }
public ClientContext(string connectionString)
{
this.Database.Connection.ConnectionString = connectionString;
}
}
但是,当我 运行 一些示例代码时,我得到了一个错误 " 不支持每种类型的多个对象集。"
如何设置我的 类 以便可以使用上述 DBContext 而无需为 ERPAdminConnection 定义新类型?
这不可能。在内部,数据库到实体的映射是一对一的,每个实体必须与具有唯一名称的 class 匹配。
EF Code first, how to register same table name with different schema?
一个选项是有一个基础 class 和两个派生的 class es(如果它们在其他方面相同,则不需要在其中定义太多)并使用 TPC inheritance .
我是 Entity Framework 的新手,我尝试使用以下 table 结构设置代码优先
Table:客户
1. ClientID int
2. Name varchar(200)
3. Company varchar(200)
Table:ERPConnection
1. ClientID int (foreign key to client)
2. Server varchar(100)
3. Username varchar(100)
Table:ERPAdminConnection
1. ClientID int (foreign key to client)
2. Server varchar(100)
3. Username varchar(100)
如您所见,client->erpconnection 和 client->erpadminconnection 之间存在一对一的关系。 (注意:table不是我设计的,但我必须按原样使用它)
如您所见,我不需要两种不同的类型来表示 erp 和 erpadmin。
所以我想创建一个类似这样的上下文
public class ClientContext: DbContext
{
public DbSet<Client> Clients{ get; set; }
public DbSet<Connection> ERPConnection { get; set; }
public DbSet<Connection> ERPAdminConnection { get; set; }
public ClientContext(string connectionString)
{
this.Database.Connection.ConnectionString = connectionString;
}
}
但是,当我 运行 一些示例代码时,我得到了一个错误 " 不支持每种类型的多个对象集。"
如何设置我的 类 以便可以使用上述 DBContext 而无需为 ERPAdminConnection 定义新类型?
这不可能。在内部,数据库到实体的映射是一对一的,每个实体必须与具有唯一名称的 class 匹配。
EF Code first, how to register same table name with different schema?
一个选项是有一个基础 class 和两个派生的 class es(如果它们在其他方面相同,则不需要在其中定义太多)并使用 TPC inheritance .