2011-07-11 8 views
5

qué tipo de datos devolverán FirstOrDefault o SingleOrDefault.En cuanto a FirstOrDefault o SingleOrDefault

suponer mi regreso consulta 3 disco como

empid ename salary 
----- ----- ------ 
1  joy 1500 
2  rob 4500 
3  jen 6500 

por lo que si utilizamos FirstOrDefault o SingleOrDefault entonces, ¿qué tipo de conjunto de resultados que voy a tener. por favor explique con el ejemplo. gracias

Respuesta

3

SingleOrDefault devolverá la excepción porque espera obtener un registro o no registro y FirstOrDefault devolverá el primer registro (1 alegría 1500) puede usar SingleOrDefault cuando su donde contiene una condición que retornará bruscamente en el registro en usted caso - where empid == 1 obviamente, usted quiere sólo un registro DB con el ID 1

+0

gracias ... dame una pequeña muestra para SingleOrDefault. Necesito saber qué tipo de situación usará SingleOrDefault. por favor necesita una muestra. – Mou

+0

puede usar SingleOrDefault cuando su donde contiene una condición que retornará bruscamente en el registro en su caso - donde empid == 1 obviamente quiere solo un registro de base de datos con la ID 1 – kleinohad

34
   | 0 values | 1 value  | > 1 value 
FirstOrDefault | Default  | First value | First value 
SingleOrDefault | Default  | First value | Exception 

y extender esta tabla para todo el conjunto:

   | 0 values | 1 value  | > 1 value 
First   | Exception | First value | First value 
FirstOrDefault | Default  | First value | First value 
Single   | Exception | First value | Exception 
SingleOrDefault | Default  | First value | Exception 
Last   | Exception | Last value | Last value 
LastOrDefault | Default  | Last value | Last value 

Y aquí está otra versión wi th algunos valores concretos para hacerlo más claro:

   | []   | [1]   | [1,2,3] 
First   | Exception | 1   | 1 
FirstOrDefault | 0   | 1   | 1 
Single   | Exception | 1   | Exception 
SingleOrDefault | 0   | 1   | Exception 
Last   | Exception | 1   | 3 
LastOrDefault | 0   | 1   | 3 
+1

que no pude entender en absoluto de su ayuda. más bien, la explicación sería mejor ... gracias – Mou

+8

@ user72: ¿qué no entiendes? La mesa es cristalina. –

+2

@ user728750: con su muestra de datos, 'FirstOrDefault' le dará" alegría "y' SingleOrDefault' lanzará una excepción. –

3

FirstOrDefault le devolverá el primer elemento y el valor predeterminado (valor por defecto para el tipo de valor y nula para el tipo de referencia) el elemento si no hay elementos están presentes.

SingleOrDefault devolverá el elemento si solo hay uno presente. Predeterminado si no hay ninguno presente y arroja una excepción si hay más de un elemento en su consulta.

En su caso FirstOrDefault devolverá el primer elemento. Y SingleOrDefault generará una excepción.

Cuestiones relacionadas