データ入力に使用する単純な Web ページがあります (.NET 4.5 および EF5 で構築)。ユーザーがエントリを更新するたびに、挿入された前の行よりも大きい TimeStamp 値を持つ新しい行が作成されます (SQL Server が保証します)。
DB では、生データは次のようになります。つまり、このデータは、TransactionNumber = 1 が 1 回追加され、その後 2 回更新されたことを意味します。
+---------------+-------------------+-----------+--------------------+
| TransactionId | TransactionNumber | Comment | TimeStamp |
+---------------+-------------------+-----------+--------------------+
| 1 | 1 | Bla | 0x00000000000007D1 |
| 2 | 1 | BlaBla | 0x00000000000007D2 |
| 3 | 1 | BlaBlaBla | 0x00000000000007D3 |
| 4 | 2 | Hello | 0x00000000000007D4 |
+---------------+-------------------+-----------+--------------------+
各 TransactionNumber の最新の値のみを取得する Linq クエリを作成したいと思います。上記のデータを考慮すると、クエリは次の結果を返します。
+---------------+-------------------+-----------+--------------------+
| TransactionId | TransactionNumber | Comment | TimeStamp |
+---------------+-------------------+-----------+--------------------+
| 3 | 1 | BlaBlaBla | 0x00000000000007D3 |
| 4 | 2 | Hello | 0x00000000000007D4 |
+---------------+-------------------+-----------+--------------------+
これまでに直面している最大の問題は、TimeStamp 列の型が byte[] であり、バイトの比較を可能にする方法がわからないことです。これを行う方法はありますか?
public class Transaction
{
// ...
[Timestamp]
public Byte[] TimeStamp { get; set; }
}