0

次の設定で2つのクラスがあります。

[ActiveRecord("ReceivedMessage")]
class ARReceivedMessage : ARBase<ARReceivedMessage>

と:

[ActiveRecord("ReceivedMessageReply")]
class ARReceivedMessageReply : ARBase<ARReceivedMessageReply>

[BelongsTo(Type = typeof(ARReceivedMessage), Column = "ReceivedMessageID")]
public ARReceivedMessage Message { get; set; }

データベースをクリーンアップしようとするとき、ReceivedMessage 自体を削除する前に、まずすべての ReceivedMessageReply オブジェクトを削除したいと考えています。コードでは、これにより次のことがわかりました。

削除したいすべての receivedMessages を取得します。

ARReceivedMessage[] messagesToDelete = ARReceivedMessage.GetAll(messageCriterion);

すべての ReceivedMessageReply を削除する基準を取得し、それらを削除します。

ICriterion relatedCriterion = Restrictions.In("ReceivedMessageID", messagesToDelete);
ARReceivedMessageReply.DeleteAll(relatedCriterion);

どういうわけか、activerecord は次のことを教えてくれます: プロパティを解決できませんでした: ReceivedMessageID of: ARReceivedMessageReply

どこで間違いを犯しているのですか?

前もって感謝します

4

1 に答える 1

0

どういうわけか私は以下を使用しなければなりませんでした:

ICriterion relatedCriterion = Restrictions.In("Message", messagesToDelete);

したがって、activerecord によって設定された columnname/propertyname ではなく、プロパティ名自体です。これは予想外でした…

于 2013-03-11T10:16:37.140 に答える