Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 在所选数据源上找不到名为的字段或属性_Asp.net_Vb.net_Entity Framework_Entity Framework 4_Linq To Entities - Fatal编程技术网

Asp.net 在所选数据源上找不到名为的字段或属性

Asp.net 在所选数据源上找不到名为的字段或属性,asp.net,vb.net,entity-framework,entity-framework-4,linq-to-entities,Asp.net,Vb.net,Entity Framework,Entity Framework 4,Linq To Entities,我有一个实体数据模型,其中有两个实体“角色”和“用户”。我有EntityDataSource和GridView中的导航属性。EntityDataSource指向用户实体,并具有Include=“Roles”参数 我在GridView中添加了一个BoundField,它指向RoleName,这是实体角色的一个属性。然而,当我执行代码时,我得到了上面的错误 我在另一个应用程序中成功地使用了非常类似的代码。你知道为什么这样不行吗 这是我的EntityDataSource: <asp:En

我有一个实体数据模型,其中有两个实体“角色”和“用户”。我有EntityDataSource和GridView中的导航属性。EntityDataSource指向用户实体,并具有Include=“Roles”参数

我在GridView中添加了一个BoundField,它指向RoleName,这是实体角色的一个属性。然而,当我执行代码时,我得到了上面的错误

我在另一个应用程序中成功地使用了非常类似的代码。你知道为什么这样不行吗

这是我的EntityDataSource:

    <asp:EntityDataSource ID="EntityDataSource1" runat="server" 
    ConnectionString="name=pbu_checklistEntities" 
    DefaultContainerName="pbu_checklistEntities" EnableDelete="True" 
    EnableFlattening="False" EnableUpdate="True" EntitySetName="Users" Include="Role">
    </asp:EntityDataSource>

这里是边界字段:

<asp:BoundField DataField="RoleName" HeaderText="Role" SortExpression="RoleName" />

您不能将
asp:BoundField
用于相关导航属性的属性。您只能使用
asp:TemplateField
,然后使用
Eval
将其绑定为只读(
绑定
)。BoundFields总是在内部使用
Bind
,这就是它不起作用的原因。前一段时间,我不得不自己解决这个问题:


我猜“RoleName”在数据源中的属性名称拼写不正确。不,它在基础数据源(MSSQL)和实体数据模型中都有明确的名称。在角色中,列为ID、RoleName、RoleDescription、EditPermissions、EditBS、EditLibrary、EditSecurity、EditFinAid、EditStudentLife、EditStudentMin、,编辑部书记官长。在Users ID,UserID,roleid中,尽管我的回答是这样的,但我现在还是很困惑:
用户
实体中是
角色
(单一参考)还是
角色
(集合)?那么什么是
RoleName
?应该是
Role.Name
还是
Role.RoleName
?或者在EntityDataSource中是否有一个
Select
语句,将
Role.Name
投影到
RoleName
作为别名?谢谢!这是一个很大的帮助。链接的问题更一般地解决了这个问题,但是这个问题和答案在我的搜索中出现了+1——这个问题与答案更直接相关。这似乎只适用于IIS 6,而不是IIS 7。有人能证实或否认这一差异吗?是的,John Bledsoe,我只是在尝试在VS 2010/IIS 6安装程序上部署我在VS 2013/IIS 7上开发的项目时遇到了这个问题。在VS 2013/IIS 7环境中进行测试时,我没有遇到任何问题。将所有内容转换为TemplateFields对我很有用。