Могу ли я создать внешний ключ из объекта, используя поле, принадлежащее другому объекту?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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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