Ale*_*pka 1 linq asp.net entity-framework
您好我试图为任何注册我的网站的用户分配一个默认组.由于该组的管理员ID是管理员,因此我在数据库中查询管理员ID为我的管理员的组,然后将该组分配给用户.但是,抛出以下错误"无法将类型'System.Data.Objects.ObjectQuery`1 [DatabaseModel1.Group]'的对象强制转换为'DatabaseModel1.Group'."下面是代码
Dim defaultGroup = (From group As Group In context.Groups
Where group.AdminID = ((From users As User0 In context.User0
Where users.Name Like "Administrator"
Select users.UserID).First)
Select group)
currentUser.Groups.Add(defaultGroup)//the error is being thrown here
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激谢谢
听起来你有一个可以返回多个结果的查询,但是你试图将它分配给一个单值变量.
您可能只需要使用以下内容:
currentUser.Groups.Add(defaultGroup.First)
Run Code Online (Sandbox Code Playgroud)
可能的选择是:
First() - 允许多个结果并返回第一个; 如果没有,将抛出异常FirstOrDefault() - 允许多个结果并返回第一个; null如果没有结果,将返回元素类型的默认值(例如)Last() - 允许多个结果并返回最后一个; 如果没有,将抛出异常LastOrDefault() - 允许多个结果并返回最后一个; null如果没有结果,将返回元素类型的默认值(例如)Single() - 期待一个结果; 如果没有结果或多个结果,则抛出异常现在您已经显示了查询,听起来您可能应该使用连接而不是嵌套查询.我对VB查询语法不热,但在C#中你可能想要:
var defaultGroupQuery =
from group in context.Groups
join user in context.User0 on group.AdminID equals user.UserID
where user.Name == "Administrator"
select group;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5086 次 |
| 最近记录: |