我在asp.net网站上关注Contoso大学的教程,一切正常.我的下一步是在我自己的新网站上复制一些内容.我添加了一个有效的EntityDataSource:
<asp:EntityDataSource ID="ProductTypeEntityDataSource" runat="server"
ConnectionString="name=MyWebsite2011Entities"
DefaultContainerName="MyWebsite2011Entities" EnableFlattening="False"
EntitySetName="product_type">
Run Code Online (Sandbox Code Playgroud)
根据教程,使用ContextTypeName替换ConnectionString和DefaultContainerName是个好主意.
"在EntityDataSource控件的标记中,删除ConnectionString和DefaultContainerName属性,并用ContextTypeName ="ContosoUniversity.DAL.SchoolEntities"属性替换它们.这是您每次创建EntityDataSource控件时应该进行的更改,除非您需要使用与在对象上下文类中硬编码的连接不同的连接."
在他们有以下内容的教程中,这对我来说很好用:
<asp:EntityDataSource ID="StudentsEntityDataSource" runat="server"
ContextTypeName="ContosoUniversity.DAL.SchoolEntities"
EnableFlattening="False"
EntitySetName="People"
EnableDelete="True" EnableUpdate="True">
</asp:EntityDataSource>
Run Code Online (Sandbox Code Playgroud)
我(除了项目名称)的不同之处在于我的实体模型没有放在DAL文件夹中.相反,我接受了Visual Web Developer的默认文件夹名称建议.我相信它是"App_Code".但ContextTypeName ="MyWebsite2011.App_Code.MyWebsite2011Entities"不起作用.当我启动浏览器时,它抱怨无法读取MyWebsite2011.App_Code.MyWebsite2011Entities类型.
<asp:EntityDataSource ID="ProductTypeEntityDataSource" runat="server"
ContextTypeName="MyWebsite2011.App_Code.MyWebsite2011Entities"
EnableFlattening="False" EntitySetName="product_type">
Run Code Online (Sandbox Code Playgroud)
如何找到要放入的正确ContextTypeName?正如我所说,ConnectionString和DefaultContainerName工作,所以我猜MyWebsite2011Entities是好的.任何提示都将受到赞赏,因为我不知道命名约定或寻找什么.
dle*_*lev 11
打开声明Context的.cs文件,并在namespace声明后立即查看文本.那是你班级的命名空间.你的ContextTypeName应该是<namespace>.<classname>(当然没有<>括号.)