2013-12-19 3 views
2

У меня есть модель данных сущности ADO.NET для моих таблиц, и если я использую ее напрямую, она отлично работает.Тип «X» не отображается в виде таблицы

Я хотел написать обертку, так что мне не нужно снова повторять тот же код. Закончилось написание некоторых методов расширения DataContext.

Итак, у вас есть что-то подобное, чтобы получить данные из таблицы.

public static TEntity Get<TEntity>(this DataContext dataContext, object id, string primaryKeyName) 
     where TEntity : class, new() 
{ 
    if (id == null) 
     return new TEntity(); 

    var table = dataContext.GetTable<TEntity>(); 
    return table.Single(DynamicGet<TEntity>(primaryKeyName, id)); 
} 

Я называю этот метод что-то вроде этого

System.Data.IDbConnection conn = new System.Data.SqlClient.SqlConnection("ConnectionString"); 
conn.Open(); 
dataContext = new DataContext(conn); 
dataContext.Get<X>(email); 

Когда я называю выше метод, я получаю эту ошибку: Тип «X» не отображается в таблице.

X исходит из модели, созданной ADO.NET и неспособной понять, почему она выбрасывает это исключение.

Любые идеи?

ответ

0

Это потому, что тип X не имеет первичного ключа в вашей БД. Добавьте первичный ключ в таблицу, обновите модель из базы данных и повторите попытку.

+0

Я смотрел на все таблицы имеют первичные ключи и проблема все еще существует. – user1932923

+0

Вы обновили свою модель данных и обновили все таблицы? –

Смежные вопросы