Frage

I'm hoping to achieve something as follows:

var comboBoxItems = from state in states
                select new 
                {
                    Key = state.Code,
                    Value = string.Format("{0} ({1})", state.Name, state.Code)
                };

this.stateComboBox.DisplayMember = "Value";
this.stateComboBox.ValueMember = "Key";
this.stateComboBox.DataSource = new BindingSource(comboBoxItems, null);

However, it gives me the following error when it attempts to bind to the DataSource:

"LINQ to Entities does not recognize the method 'System.String Format(System.String, System.Object, System.Object)' method, and this method cannot be translated into a store expression."

Is there any way to include a method like string.Format() in the Anonymous Type?

War es hilfreich?

Lösung

var comboBoxItems = from state in states.ToList()
                select new 
                {
                    Key = state.Code,
                    Value = string.Format("{0} ({1})", state.Name, state.Code)
                };

You cannot use Format in LINQ 2 Entities as it cannot be translated to SQL. A call to ToList will cause the items to be loaded from DB and your format will now execute properly.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top