¿Cómo debo comparar los campos rowversion
usando Entity Framework? Tengo una tabla que tiene una columna rowversion
, quiero obtener datos de tablas para las cuales la versión de fila es más alta que el valor especificado.Comparación de Rowversion en Entity Framework
//code
byte[] rowversion = .....somevalue;
_context.Set<T>().Where(item => item.RowVersion > rowVersion);
Esta línea no funciona, se lanza de error:
cannot be applied to operands of type 'byte[]' and 'byte[]'
Cualquier idea de cómo puedo comparar rowversion
campos en C#/EF?
Con la columna de rowversion, básicamente solo se puede verificar la igualdad (o no igualdad); no se puede probar realmente para "mayor que" o no. –
@marc_s Yo también pensé lo mismo, pero en realidad, si miramos más de cerca, [la documentación] (http://msdn.microsoft.com/en-us/library/ms182776.aspx) habla de valores de rowversion que se incrementan, lo que respalda la observación de que una conversión de fila puede tratarse como un entero de 64 bits, y valores más altos se han insertado en la base de datos más tarde, y que es un entero de 64 bits significa que no hay posibilidades realistas de desbordamiento. – hvd