Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在LINQ查询中将时间戳与字节[]进行比较_C#_Linq_Entity Framework - Fatal编程技术网

C# 在LINQ查询中将时间戳与字节[]进行比较

C# 在LINQ查询中将时间戳与字节[]进行比较,c#,linq,entity-framework,C#,Linq,Entity Framework,我有一个字节数组,需要与SQL列timestamp进行比较,timestamp也是一个字节数组。 这是一个时间戳,我需要从中获取之前或之后的所有记录 我正在使用EF,并试图让它在LINQ查询中工作 byte[] myArray = repo.GetTimeStampByDate(DateTime.Now); rec.sometable.Where(o => o.timestamp <= myArray).ToList(); 最简单的方法是将两个字节数组转换为UInt64值,然后进行

我有一个字节数组,需要与SQL列timestamp进行比较,timestamp也是一个字节数组。 这是一个时间戳,我需要从中获取之前或之后的所有记录

我正在使用EF,并试图让它在LINQ查询中工作

byte[] myArray = repo.GetTimeStampByDate(DateTime.Now);
rec.sometable.Where(o => o.timestamp <= myArray).ToList();

最简单的方法是将两个字节数组转换为UInt64值,然后进行比较

或者,您可以创建一个自定义方法来比较时间戳数组:

 // assuming both arrays are of equal lengths
 public static int Compare(byte[] ts1, byte[] ts2)
    {
        int i = 0;
        while (i < ts1.Length)
        {
            if (ts1[i] > ts2[i])
                return 1;
            else if (ts1[i] < ts2[i])
                return -1;
            ++i;
        }
        return 0;
    }
然后

byte[] myArray = repo.GetTimeStampByDate(DateTime.Now);
rec.sometable.Where(o => Compare(o.timestamp, myArray) <= 0).ToList();

我尝试在LINQ查询中使用BitConverter,但它不受支持。为什么不能在单独的方法中使用` BitConverter,这是不可访问的..?否,因为LINQ查询中的值,即我问题中的o.时间戳,无法通过查询中的BitConverter进行转换。