私のServiceStackアプリケーションでは、2人のユーザーがダイアログを持つことができるシンプルなチャットを実装しています。簡単にするために、私は次のフィールドが含まれていTextMessagesテーブルを、作成しました:ServiceStack同じタイプの負荷を複数参照する
public class TextMessage
{
[AutoIncrement]
[PrimaryKey]
public int Id { get; set; }
[References(typeof(MyUserAuth))]
public int FromUserId { get; set; }
[References(typeof(MyUserAuth))]
public int ToUserId { get; set; }
[Reference]
[ForeignKey(typeof(MyUserAuth))]
public MyUserAuth FromUser { get; set; }
[Reference]
[ForeignKey(typeof(MyUserAuth))]
public MyUserAuth ToUser { get; set; }
//TimeZoneInfo.ConvertTimeToUtc(dateNow);
public DateTime UtcReceivedOn { get; set; }
public string Text { get; set; }
}
私USERAUTHは、ベース1を継承し、2つの以上のフィールド追加:
public class MyUserAuth : UserAuth
{
public List<TextMessage> TextMessagesAsAuthor { get; set; }
public List<TextMessage> TextMessagesAsRecipient { get; set; }
}
は、今の私はいくつかを作成しましょうユーザーその後、いくつかのメッセージ:
var msg1 = new TextMessage { FromUserId = 1, ToUserId = 2, UtcReceivedOn = dt, Text = "Hello" };
var msg2 = new TextMessage { FromUserId = 1, ToUserId = 3, UtcReceivedOn = dt, Text = "Hello" };
var msg3 = new TextMessage { FromUserId = 1, ToUserId = 4, UtcReceivedOn = dt, Text = "Hello" };
var msg4 = new TextMessage { FromUserId = 1, ToUserId = 4, UtcReceivedOn = dt, Text = "Hello" };
そして、私は私のユーザーを読み取ろう:
var user = db.LoadSingleById<MyUserAuth>(1);
ここでの問題は、TextMessagesAsAuthor
とTextMessagesAsRecipient
の両方に4つのメッセージがあり、論理的にはTextMessagesAsAuthor
には4、TextMessagesAsRecipient
には4があることです。 OrmLiteにこれらの2つの特性を異ならせるように私はどのように指示できますか?あなたはTextMessage
表で使用しているよう