具有多个键的EntityFramework模型

时间:2012-05-03 15:14:25

标签: .net entity-framework edmx edmx-designer

我正在尝试为现有数据库创建EDMX模型,数据库具有以下模式(不是最好的模式,但这是我拥有的,我无法更改它):

Table: ObjectTypes (ObjectTypeID "Identity", ObjectName)
Data: 1, Customer
Data: 2, Agent

Table: Customers (CustomerID "Identity", FName, LName, AgentID)
Data:  1, FTest, LTest, 1

Table: Agent (AgentID "Identity", AgentName, AgentCommission)
Data:  1, TestAgent, 10.0

Table: Contacts (ContactID "Identity", ObjectTypeID, ObjectID, ContactName)
Data:  1, 1, 1, CustomerTestContact
Data:  2, 1, 1, CustomerTestContact2
Data:  3, 2, 1, AgentTestContact
Data:  4, 2, 1, AgentTestContact2

现在我需要为联系人创建具有导航属性的代理和客户实体。

For contacts of agents: Agents A JOIN Contacts C ON A.AgentID = C.objId AND C.objType = 2
For contacts of customers: Customers Cust A JOIN Contacts C ON Cust.CustomerID = C.objId AND C.objType = 1

我该怎么做?

我尝试使用继承(Customer和Agent从ObjectTypes继承),然后为每个类添加ObjectTypeID的条件(Customer = 1,Agent = 2),但我收到错误,因为ObjectTypes中的ObjectTypeID可以完成定义为标识列。

我不确定我是否正确行事,但我找不到另一个。

实际上,我甚至不知道是否有可能通过EF实现这一目标。

谢谢。

0 个答案:

没有答案