Тип одного из значений первичного ключа не соответствует типу, определенному в сущности - PullRequest
0 голосов
/ 07 мая 2018

Я пытаюсь получить некоторые идентификаторы в массиве, а затем выбрать некоторые из них. Мое поле идентификатора таблицы имеет значения 01, 02, 01-03-04, поэтому я подумал, сначала использовать регулярное выражение для удаления тире, а затем преобразовать его в int. Мое поле это navchar. Я не знаю, правильно ли это, но мне нужны значения, которые больше 01 и меньше 08.

Это то, что я сделал до сих пор

var tids = db.mytable.AsEnumerable()
    .Select(p => Convert.ToInt32(Regex.Replace(p.myID, "[^0-9]+", string.Empty)))
    .ToArray();


var query = (from e in tids
             where e >= 1 && e <= 8
             select new MyTableViewModel ()
             {
                 ID = Convert.ToInt32(Regex.Replace(db.mytable.Find(e).myID, "[^0-9]+", string.Empty)),
                 Details= db.mytable.Find(e).myDetails
             }).ToList();

и для передачи данных в список, чтобы создать выпадающее меню

SelectList list = new SelectList(query , "ID", "Details"); 
ViewBag.ddl = list;

My MyTableViewModel

public class MyTableViewModel
{
    public int ID { get; set; }
    public string Details { get; set; }
}

Но я получаю

«Тип одного из значений первичного ключа не соответствует типу, определенному в сущности»

и в InnerException

«Типы аргументов« Edm.String »и« Edm.Int32 »несовместимы для этой операции. Рядом с предикатом WHERE, строка 1, столбец 66».

Я видел это Тип одного из значений первичного ключа не соответствует типу, определенному в сущности. Подробнее см. Внутреннее исключение

но не повезло

спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...