update mvc framework ejemplo delete con application c# .net winforms linq entity-framework

ejemplo - entity framework c# mvc



Linq Query sigue arrojando "No se puede crear un valor constante de tipo System.Object...", ¿Por qué? (4)

La siguiente es la muestra del código:

private void loadCustomer(int custIdToQuery) { var dbContext = new SampleDB(); try { var customerContext = from t in dbContext.tblCustomers // keeps throwing: where t.CustID.Equals(custIdToQuery) // Unable to create a constant value of type ''System.Object''. select new // Only primitive types (''such as Int32, String, and Guid'') { // are supported in this context. branchId = t.CustomerBranchID, // branchName = t.BranchName // }; // if (customerContext.ToList().Count() < 1) //Already Tried customerContext.Any() { lstbCustomers.DataSource = customerContext; lstbCustomers.DisplayMember = "branchName"; lstbCustomers.ValueMember = "branchId"; } else { lstbCustomers.Items.Add("There are no branches defined for the selected customer."); lstbCustomers.Refresh(); } } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { dbContext.Dispose(); } }

No puedo entender qué estoy haciendo mal. Sigo recibiendo "No se puede crear un valor constante de tipo ''System.Object''. Solo los tipos primitivos (''como Int32, String y Guid'') son compatibles en este contexto".


Me enfrenté al mismo problema y estaba comparando el Objeto de Colección "User" con el tipo de datos entero "userid" ( x.User.Equals(userid) )

from user in myshop.UserPermissions.Where(x => x.IsDeleted == false && x.User.Equals(userid))

y la pregunta correcta es x.UserId.Equals(userid)

from user in myshop.UserPermissions.Where(x => x.IsDeleted == false && x.UserId.Equals(userid))


Tuve el mismo problema con un int nullable. Usar == en su lugar funciona bien, pero si desea utilizar .Equals, puede compararlo con el valor de la variable que admite nulos, por lo que

where t.CustID.Value.Equals(custIdToQuery)


Tuve el mismo problema cuando estaba tratando de hacer .Equals con un decimal con nulos. Usar == en su lugar funciona bien. Supongo que esto se debe a que no intenta hacer coincidir exactamente el "tipo" de decimal. a decimal


Use == en lugar de igual a:

where t.CustID == custIdToQuery

Si los tipos son incorrectos, puede encontrar que esto no se compila.