2012-03-27 3 views
0

Я надеюсь, что чего-то достичь следующим образом:Невозможно использовать string.Format() в Anonymous Тип

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); 

Однако, это дает мне следующую ошибку при попытке привязать к DataSource:

"LINQ к Entities не распознает метод 'System.String Format (System.String, System.Object, System.Object)' метод, и этот метод не может быть переведен в выражение магазина."

Есть ли способ включить метод типа string.Format() в анонимный тип?

ответ

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

Вы не можете использовать Format в LINQ 2 лиц, поскольку он не может быть переведен на SQL. Вызов ToList приведет к тому, что элементы будут загружены из БД, и теперь ваш формат будет выполнен правильно.

+0

Отлично, спасибо! – lintmouse