Могу ли я создать внешний ключ из объекта, используя поле, принадлежащее другому объекту?C#

Место общения программистов C#
Anonymous
Могу ли я создать внешний ключ из объекта, используя поле, принадлежащее другому объекту?

Сообщение Anonymous »

У меня есть сущность «Квитанция», которая может быть связана с сущностью «MatchedMerchantReturnLine». Этот объект MatchedMerchantReturnLine имеет свойство OurOrderNumber.
Я хотел бы связать объект Receipt с объектом OrderLineContractNumbers через это свойство (и еще одно в объекте Receipt, но проблема не в этом).
например:

Код: Выделить всё

modelBuilder.Entity().HasMany(r => r.Receipts)
.WithOne(r => r.OrderNumberDetails)
.HasForeignKey(r => new { r.MatchedMerchantReturnLine.OurOrderNumber, r.Item })
Однако это не работает из-за ошибки:

Код: Выделить всё

The expression 'r => new f__AnonymousType3`2(OurOrderNumber = r.MatchedMerchantReturnLine.OurOrderNumber, Item = r.Item)' is not a valid member access expression. The expression should represent a simple property or field access: 't => t.MyProperty'. When specifying multiple properties or fields, use an anonymous type: 't => new { t.MyProperty, t.MyField }'. (Parameter 'memberAccessExpression')
Я также пробовал создать свойство объекта Receipt:

Код: Выделить всё

public string OurOrderNumber => MatchedMerchantReturnLine?.OurOrderNumber;
и ссылаясь на это:

Код: Выделить всё

modelBuilder.Entity().HasMany(r => r.Receipts)
.WithOne(r => r.OrderNumberDetails)
.HasForeignKey(r => new { r.OurOrderNumber, r.Item })
однако тогда я получаю сообщение об ошибке, как показано ниже:

Код: Выделить всё

No backing field could be found for property 'MerchantReturnReceipt.OurOrderNumber' and the property does not have a setter.
Есть ли какой-нибудь способ добиться того, чего я здесь хочу?

Подробнее здесь: https://stackoverflow.com/questions/784 ... o-a-differ

Вернуться в «C#»