LINQ,“参数类型不匹配”错误,这是什么意思,我该如何解决?
我是 linq 的新手,我正在尝试将数据绑定到匿名类型。
我使用 SubSonic 3.0 作为我的 DAL。
我正在从 2 个表中进行选择,如下所示
var myDeal = (from u in db.Users
select new
{
UserID = u.UserID,
UserRoleID = (from ur in u.UserRoles where u.UserRoleID == ur.UserRoleID select ur).FirstOrDefault().UserRoleID
});
foreach (var v in myDeal) //dies first time here
{
}
然后当我进行数据绑定或尝试迭代集合时,我在运行时收到“参数类型不匹配”错误。
我不确定这里发生了什么事。
I'm new to linq and I'm trying to databind to an anonymous type.
I'm using SubSonic 3.0 as my DAL.
I'm doing a select from 2 tables like so
var myDeal = (from u in db.Users
select new
{
UserID = u.UserID,
UserRoleID = (from ur in u.UserRoles where u.UserRoleID == ur.UserRoleID select ur).FirstOrDefault().UserRoleID
});
foreach (var v in myDeal) //dies first time here
{
}
Then when I databind or try to iterate through the collection I get the "Argument types do not match" error during run time.
I'm not sure what is going on here.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
ID 字段之一可以为空吗?
如果是这样,您需要访问 .Value 属性
您也可以尝试如下操作:
您使用 tempRoles 执行左外连接。因此,如果没有分配角色,您仍然可以获得用户 ID。
我还没有测试过这个,这只是我的想法。
祝你好运,
帕特里克。
Is one of the ID fields nullable?
If so, you need to access the .Value property
You could also try something like this:
You use tempRoles to execute a left outer join. So if there is no role assigned, you still get the userID.
I haven't tested this, this is just off the top of my head.
Good Luck,
Patrick.
“参数类型不匹配”错误通常是由我们要绑定的属性与其元素之间的类型不匹配引起的。
RadGridSparkline 中的示例,当我们想要绑定其项目源时
“值”类型必须是双精度型。
如果我们的 Value 属性定义如下
公共小数合约价值
{ 放;得到;将
显示此错误
"Argument types do not match" error is usually caused by the un-matching type between the property we would like to bind and its element.
Example in RadGridSparkline, when we would like to bind its item source
"Value" type must be double.
If we have the Value property defines as below
public decimal ContractValue
{ set; get; }
This error will be displayed