from p in Entities.yhb
join o in Entities.aspnet_Membership on p.sUserID equals o.UserId.ToString()yhb和Membership是用UserID对应的,但是Membership中的userID是 Guid类型的,而yhb里面的userID是string类型的,问题:怎么让他们内连接,上面的tostring我知道是不行的。。2.界面上有个用户是否启用的条件,是和否以及请选择,对应aspnet_Membership 里面的bool字段
IsLockedOut,这里做为条件怎么查?也就是我传进来的IsUse是一个int类型的,如果>1 直接true否则用IsLockedOut=IsUse(但是bool和int不能在linq to EF)里面对应。。where serchmodel.IsUse > 1 ? true : o.IsLockedOut == bool.Parse(serchmodel.IsUse.ToString())
这样作为条件是错的。很急,如有知道,小虎多谢(300分奉上)。

解决方案 »

  1.   

    第一个问题,不能在数据库中修改为类型一致?
    http://msdn.microsoft.com/zh-cn/library/zakwfxx4(VS.80).aspx
      

  2.   

    先回答第一问:
    var obj=from p in Entities.yhb
    join o in Entities.aspnet_Membership on p.UserID equals o.UserId.ToString()
    select new 
    {
    id=p.id,
    guid=p.guid,
    name=o.name
    }
      

  3.   

    第二个问题:
    var obj= from。。
    select new  
    {
    .....
    IsLockedOut=serchmodel.IsUse > 1 ? true :Convert.ToBoolean(serchmodel.IsUse)),
    ......
    }
      

  4.   

    推荐:
    http://blog.csdn.net/GodHeaven/archive/2008/11/29/3410154.aspx
      

  5.   

    Field 方法不执行类型转换。如果要求类型转换,则应首先使用 Field 方法来获取列值
    var q= from p in Entities.yhb
                      join b in Entities.aspnet_Membership 
                      on p.UserID equals b.UserId.ToString()   
                      select p;   
      

  6.   

    能不能先 将 一个表 中的 一列转为 guid,然后再进行操作呢?
      

  7.   

     试试 这个
         context.BetTickerSet.MergeOption = MergeOption.NoTracking;