0

经过无数个小时后,我终于设法获得了流畅的 api 设置,将我们现有的复杂 SQL DB 映射到 POCO 类。有一件事我没有开始工作,我想知道它是否不受支持。

类权力有:

List<Transaction> PowerTransactions;
Transaction LastPowerTransaction;
int PowerTransactionId;

事务是一对多的,其中事务表有一个指向 Power.PowerID 的 FK,可以正常工作。

Power 具有指向事务表中的 TransactionId 的列 PowerTransactionId 和 FK。

我设置了流畅的 API:

Power 具有可选的 Last Transaction 和所需的功率

HasOptional(x => x.LastPowerTransaction).WithRequired(x => x.PowerLastPowerTransaction).Map(x =>     x.MapKey("PowerTransactionId"));

powers TransactionID为123,选择功率时,PowerID为1。lastPopertransaction我获得了ID 1而不是123的交易。

由于多对多从 PowerID=1 的 PowerTransaction 中选择 ..,因此一对一执行相同的操作,而不是从 PowerID=123 的 PowerTransaction 中选择 ..。

我在这里想念什么?

4

1 回答 1

0

Mystere Man 的评论不是真正的答案,但使用提到的工具可以得出正确的答案。EF4 代码首先只与共享主键建立一对一的关系。尊敬的工程揭示了这一点,因为没有创建一对一。因此我的流畅映射是错误的。这是 EF4 代码中的一个限制,如果现有数据库不使用共享主键,则必须解决使用一对一作为“假”一对多的问题。

于 2012-11-09T20:36:53.983 回答