私は、次のしている:ここEF CF - プリミティブ型の一覧<T>
public class Broadcast {
public int NumUsersToMessage { get; set; }
public int NumMessagesQueued { get; set; }
public string DbUsersMessaged { get; set; }
public int NumMessagesSent {
get {
return UsersMessaged.Count();
}
}
public List<int> UsersMessaged {
get {
return DbUsersMessaged == null ? new List<int>() : DbUsersMessaged.Split(',').Select(Int32.Parse).ToList();
}
set {
DbUsersMessaged = value != null ? String.Join(",", value) : null;
}
}
}
私の目標は今までUsersMessaged
を通じてDbUsersMessaged
にアクセスすることです。私はbroadcast.UsersMessaged.Add(2)
をしようとしていますが、これは割り当てではないので、私が好きなように振る舞うようにプロパティを取得することはできません。代わりに、私はこれをする必要があります:
tempList = broadcast.UsersMessaged();
tempList.Add(2);
broadcast.UsersMessaged = tempList;
db.SaveChanges();
これは明らかに扱いにくいです。私はAddReassign
拡張メソッドを作ることを検討していますが、知りたいのは、プリミティブ型のリストをサポートするための標準的なプラクティスは何ですか?それは私の最高のショットは、このようになります、でも拡張メソッドを持つようになっています。誰もが尋ねる前に
broadcast.UsersMessaged = broadcast.UsersMessaged.AddReassign(2) // yuck!
- 私たちは、パフォーマンス上の理由から、これを意図的に非正規化しました。
私が見ることができる唯一の方法は、.Add()メソッドをオーバーライドしてsetterを呼び出すか、同じ方法で動作させることです。 – DevilSuichiro