我有我的表的ADO.NET实体数据模型,如果我直接使用它,它工作正常。
我想写一个包装器,这样我就不必再重复相同的代码了。结束编写一些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 :(得分:3)
真正的问题是我在Linq To Sql框架中使用DataContext而不是Linq To Entities,它不能一起使用。
答案 1 :(得分:0)
这是因为类型X在您的数据库中没有主键。向表中添加主键,从数据库更新模型,然后重试。