var aRole =
( from aspnet_Roles rol
in _allRoles
where rol.RoleId.ToString() == ddlRoles.SelectedValue
select rol).SingleOrDefault()
好像有个first开头的方法。
var aRole = (from aspnet_Roles rol
in _allRoles
where rol.RoleId.ToString() == ddlRoles.SelectedValue
select rol).FirstOrDefault();
采纳答案时页面给出的是复选框,结果采纳结果只采纳最后一个勾选的!
我是第先勾的你的答案。。。
var aRole = aspnet_Roles.First(x=>x.RoleId == ddlRoles.SelectedValue);
Linq不一定要用你那种写法.
var aRole = aspnet_Roles.FirstOrDefault(x=>x.RoleId == ddlRoles.SelectedValue);
使用扩展方法形式写吧
条件是放在where中的,你这个查询结果是一个bool值,而不是一个ROLE对象。
var aRole =
( from aspnet_Roles rol
in _allRoles
4where rol.RoleId.ToString() == ddlRoles.SelectedValue
select rol).First();
你都能拿到IEnumrable了在Foreach循环得到对象@
你这个给分!!!
1、首先,DOUDOU先给你回答的
2、其次,DOUDOU的也是正确的
3、至于你选择的最优解与DOUDOU以及yangtam三个方案之间的区别是,要了解Single、SingleOrDefault、First、FirstOrDefault四个方法的区别。
DOUDOU跟最优解的关键:如果你的记录是唯一的或者不存在,最优解最好,这个答案能避免出现重复的。假如你的数据是多个,那就用DOUDOU的方案,这个方案在只有一个唯一的时候也是运行安全的(但会忽略业务逻辑安全,比如数据应该唯一,却有多个的情况)。
至于yangtam的方案,要求至少有一条记录,不能不存在。同样的,如果使用Single方法,则要求必须有且只能有一条记录。
Single:必须有且只能有一条记录
First/Last:至少需要有一条记录
SingleOrDefault:最多只能有一条记录
FirstOrDefault/LastOrDefault:可以有任意多条记录
容我解释啊!!!无辜啊!!!
我是先勾选了DOUDOU的答案(是方形的复选框哦),然后看别人正确的也一并都勾选上了
然后神奇的时刻有木有!!
居然只采纳了最后一个勾选的答案!!!!
我还以为像StackExchange一样可以修改为采纳DouDOU的答案!
找了一圈,居然无法修改!!!!
我想不行就给管理员提个意见!!结果找了一圈!!
还是木有!!!!!!!!!!!!!!!!!!!!!!!
在此只能说sorry。。。。诶
@Kevin_: 哦。原来这样啊。
这里的结贴系统有时很方便,有时。。。也很让人吐槽。
结贴的时候,先把那些计划给分的分数给了,最后对最优答案打勾,会自动把所有的分数(或剩余的分数)给这个最优答案。
我遇到过我被选为最优答案后,只得到一分,而别的非最优答案却比我都多。