1

我正在尝试使用 entitydatasource 和查询构建一个下拉列表。我收到以下错误消息,我不确定我做错了什么:

'UserId' 不是'Transient.collection [WebAppModel. UserSite(Nullable=True, DefaultValue=)]'。要提取集合元素的属性,请使用子查询来迭代集合。接近简单标识符,第 6 行,第 69 列。

实体数据源

<asp:EntityDataSource ID="edsSites" runat="server" 
                ConnectionString="name=WebAppEntities" 
                DefaultContainerName="WebAppEntities" 
                EntitySetName="Sites" 
                Include="Sites, UserSites" 
                Where="EXISTS(SELECT Sites.SiteId, Sites.Domain FROM Sites 
                            WHERE UserSites.UserId=@UserId)">
    <WhereParameters>
        <asp:Parameter Name="UserId" DbType="Guid" />
    </WhereParameters>
</asp:EntityDataSource>

edm(站点) - 表(站点)

  • 站点 ID - PK
  • 项目清单
  • 组织
  • 领域
  • 地址1
  • 地址2
  • 城市
  • 状态
  • 邮政编码
  • 国家 ID
  • 电话号码
  • 电子邮件

edm(Us​​erSite) - 表(UserSite)

  • 用户 ID FK
  • 站点 ID FK
4

1 回答 1

1

问题解决了!

<asp:EntityDataSource ID="edsSites" runat="server" 
                                    ConnectionString="name=WebAppEntities" 
                                    DefaultContainerName="WebAppEntities" 
                                    EntitySetName="Sites"
                                    Where="EXISTS(SELECT VALUE u FROM it.UserSites AS u WHERE u.UserId = @UserId)" EnableFlattening="False" Select="it.[SiteId], it.[Domain]">
                                    <WhereParameters>
                                        <asp:Parameter Name="UserId" DbType="Guid" />
                                    </WhereParameters>
</asp:EntityDataSource>
于 2012-08-17T03:38:52.190 回答