2013-12-19 56 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

您是否更新數據模型並刷新所有表格? –