读书人

linq语句的写法

发布时间: 2012-12-27 10:17:10 作者: rapoo

求助,linq语句的写法。
本人不太懂linq求助:
var Data= from p in CRMServices.Context.username
select new
{
id=p.id,
name=p.name,
team1=p.team1.team1,
password = "<a href=\"/Qxgl/ReSetPassword?userid=" + Convert.ToString(p.id) + "\">重置</a>"
};
这项写出来,查不到数据
var Data= from p in CRMServices.Context.username
select new
{
id=p.id,
name=p.name,
team1=p.team1.team1
};
这样写出来。OK
sql语句 select id,name,team1,'<a href=/Qxgl/ReSetPassword?userid='+id+'>重置</a>' as 密码 from username
主意id是int类型,如果是string+string 是不会出错的。
初学linq,希望高人指点一二
[最优解释]
不是linq 不支持.ToString()
是LINQ TO EF不支持
你的做法是变相的转成了LINQ TO Object
当数据库中数据量比较大时就出问题了

我在3楼的写法已经去掉.ToString了啊


[其他解释]

 var Data= from p in CRMServices.Context.username select p

[其他解释]
 team1=p.team1.team1

这个p.team1.team1神马东东
[其他解释]
var Data= from p in CRMServices.Context.username
select new


{
id=p.id,
name=p.name,
team1=p.team1.team1,
password = "<a href=\"/Qxgl/ReSetPassword?userid=" + p.id + "\">重置</a>"
};

你是linq to sql还是linq to ef?
[其他解释]
linq to ef把。。
p.team1.team1是导航属性
[其他解释]

引用:
C# code

team1=p.team1.team1

这个p.team1.team1神马东东

那个是导航属性,导航到另外一个表的team1字段
[其他解释]
没人帮忙下吗?
[其他解释]
3楼的不行?
[其他解释]
引用:
3楼的不行?

不行,我查到原因了。Linq不支持tostring()函数
要先将内容查出来转成list,在查才能支持tostring()函数。

List<username> lstuser = CRMServices.Context.username.ToList<username>();
var GridData = from p in lstuser
select new
{
p.id,
p.name,
team=p.team1.team1,
password = "<a href=\"/Qxgl/ReSetPassword?userid=" + p.id.ToString() + "\">重置</a>"
};
[其他解释]
引用:
不是linq 不支持.ToString()
是LINQ TO EF不支持
你的做法是变相的转成了LINQ TO Object
当数据库中数据量比较大时就出问题了

我在3楼的写法已经去掉.ToString了啊

+1
[其他解释]
引用:
不是linq 不支持.ToString()
是LINQ TO EF不支持
你的做法是变相的转成了LINQ TO Object
当数据库中数据量比较大时就出问题了

我在3楼的写法已经去掉.ToString了啊

我知道你是去掉了.ToString 可是我注明ID是INT哦。你可以测试下,才C#中 INT与String相加是没有sql中的效果的,会出问题。我再多查查资料,好像Linq TO EF 似乎可以调用sql函数,只是暂时没去研究。

读书人网 >.NET

热点推荐