呃 发Linq区没人回 就转这里来了..
这个是我另一个程序中正确的 这个是用asp.net mvc+ado.net entity写的这个是我错的这个程序里的类型 用的asp.net WebForm+ado.net entity写的
提示的错误是
是不是因为类型不批配 所以提示找不到?
那我该怎么声明呢 之前一直用的var 后来改用IQueryable 依然提示错误 Users是一张表错误代码:  public partial class _Default : System.Web.UI.Page
    {
        UserEntities ue = new UserEntities();
        ObjectQuery<Users> querys;
        protected void Page_Load(object sender, EventArgs e)
        {
            querys = ue.Users;
            IQueryable<Users> query = from q in querys
                        select q;
            GridView1.DataSource = query;
            GridView1.DataBind();
            GridView1.SelectedIndex = 0;
        }        protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            string id1 = (string)e.CommandArgument;
            int id = Int32.Parse( id1);
            var  deleteUser = from d in querys
                             where d.UserID == id
                             select d;
          //  var deleteUser = ue.Users.First(d => d.UserID == id);
            ue.DeleteObject(deleteUser);//执行这句时就提示错误
            ue.SaveChanges();        }整了半天了 求解啊..

解决方案 »

  1.   

    这个问题我改出来了 用的方法写的 但是我想要用表达式写 这里面还是有问题啊 
    方法正确写法: Users deleteUser = ue.Users.First(d => d.UserID == id);
    表达示错误写法:  Users deleteUser = from d in ue.Users
                                 where d.UserID == id
                                 select d;
    错误原因很简单 就是ue.Users是一个泛型  但是Users是一个单一的类型 所以从ue.Users=>deleteUser转换时 就出问题 但是我想要用表达式写法的话 我该怎么写呢....
      

  2.   

     List<Users > deleteUser=from d in ue.Users
      where d.UserID == id
      select d;
    然后你再d[0]的形式,试试。。