0

В Visual Web Developer 2010 я пытаюсь реализовать расширение EntityDataSource, описанное на этой странице, которое позволяет использовать Insert() как метод:Ошибка с EntityDataSourceExtention для Enable Insert(): «тип или имя EntityDataSource не удалось найти»

http://social.msdn.microsoft.com/forums/en-US/adodotnetentityframework/thread/d8a3ecd8-55dd-45ad-8175-d7ce912f46c2/

Я получаю ошибку компиляции «CS0246: тип или пространство имен имя„EntityDataSource“не может быть найден (вы пропали без вести с помощью директивы или ссылка на сборку?)»

Я изначально созданный Класс, который есть на этой странице: http://forums.asp.net/t/1621469.aspx/1

Нет разницы между 2 (за исключением версии 1-го ссылка фактически получает БВ распознать имя EntityDataSourceExtentions класса как-то. - цветовые коды он в сине-зеленый) я должен использовать .NET 4.0.

Дополнение Это содержимое класса, сохраненные как EntityDataSourceExtentions.cs в App_Code:

using System.Collections.Specialized; 

namespace System.Web.UI.WebControls 
{ 
    public static class EntityDataSourceExtentions 
    { 
     private static bool DefaultOperationCallback(int affectedRows, Exception ex) 
     { 
       return false; 
     } 
     public static void Insert(this EntityDataSource dataSource) 
     { 
       (dataSource as IDataSource).GetView(string.Empty).Insert(new OrderedDictionary(),DefaultOperationCallback); 
     } 
    } 
} 

Это содержание web.config, так что, кажется, играет определенную роль в добавлении различные узлы к компиляции:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <connectionStrings> 
    <add name="CustomConn" connectionString="Removed=true;" providerName="System.Data.SqlClient" /> 
    <add name="CustomEntities" connectionString="removed=true;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 
    <add name="TestConn" connectionString="removed=true;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 
    </connectionStrings> 
    <system.web> 
    <compilation debug="true" targetFramework="4.0"> 
     <assemblies> 
     <add assembly="System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=X1" /> 
     <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=X2" /> 
     <add assembly="System.Data.Entity.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=X3" /> 
     </assemblies> 
     <buildProviders> 
     <add extension=".edmx" type="System.Data.Entity.Design.AspNet.EntityDesignerBuildProvider" /> 
     </buildProviders> 
    </compilation> 
    <customErrors mode="Off" /> 
    <pages> 
     <controls> 
     <add tagPrefix="custom" tagName="SidebarAds" src="~/_user_controls/SidebarAds.ascx" /> 
     <add tagPrefix="custom" tagName="ComingSoon" src="~/_user_controls/ComingSoon.ascx" /> 
     <add tagPrefix="custom" tagName="StateSelect" src="~/_user_controls/StateSelect.ascx" /> 
     </controls> 
    </pages> 
    </system.web> 
</configuration> 

Теперь, когда я смотрю на web.config ... Я заметил, на некоторых веб-сайтах, что существует разница между «System.Data.Entity» и «системы. Web.Entity». Должна ли быть добавлена ​​сборка .Web.Entity, чтобы сделать эту работу? Кто-нибудь знает свой тег?

ответ

0

По-видимому, формулировка, которую мне нужно знать, является «ссылкой».

И меню для решения этой проблемы в VWD - это веб-сайт> Добавить ссылку ..., а затем вкладку .NET.

дает мне:

<add assembly="System.Web.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
<add assembly="System.Web.Entity.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 

(И просто знать, по-видимому, PublicKeyToken не какой-либо конфиденциальных данных

Полезная информация:.

Adding assembly reference within web.config

http://en.wikipedia.org/wiki/.NET_assembly )

И, наконец, я добавил файл EntityDataSourceExtentions.cs обратно в папку App_Code и перестроил сайт, и я больше не получаю ошибку компиляции. (Смешно, что мне нужно добавить ссылку на эту сборку, когда я уже использую источник данных на странице успешно. Будьте благословлены, если я знаю, как все это работает.) Так что пока я до сих пор не знаю, EntityDataSource.Insert() решит мою проблему с дизайном, я, по крайней мере, прошёл первоначальную, неприятную ошибку компиляции.