EntityDataSource, используя предложение IN для сбора свойств навигации - PullRequest
1 голос
/ 28 февраля 2011

Привет! Я использую EntityDataSource для извлечения своих товаров и хочу получить предметы для определенного региона.(элементы и регионы имеют отношение многие ко многим, поэтому элемент имеет свойство навигации по регионам).и я использую «IN» для фильтрации элементов.попробовал несколько комбинаций, и он продолжал бросать различные ошибки.Как я могу разобраться в этом:

Ниже мой источник данных:

<asp:EntityDataSource ID="CataloguesDataSource" runat="server" ConnectionString="name=ModelContainer" 
    DefaultContainerName="ModelContainer" EnableInsert="false" EnableUpdate="false"  OrderBy="it.EndDate desc,it.id desc" Include="it.Regions"
    EntitySetName="Catalogues"   Select="it.Id,it.Name,it.StartDate,it.EndDate,it.RetailerId"
    Where="it.Retailer.Name=@RetailerName and @Region IN (select p.Id from it.Regions as p)" >
   <WhereParameters> 
        <asp:ControlParameter Name="RetailerName" ControlID="hdnRetailer" DbType="String"  PropertyName="Value" DefaultValue="abc"  />
        <asp:ControlParameter Name="Region" ControlID="hdnregion" DbType="Int32"  PropertyName="Value" DefaultValue=""  />      

     </WhereParameters>
</asp:EntityDataSource>  

1 Ответ

0 голосов
/ 06 марта 2011

Обычно использование ключевого слова in выполняется следующим образом.

Это с MVC 3 и в контроллере, использующем Entity Framework.


public ActionResult Index()
        {
            myEntities context = new myEntities();

            var result = from o in context.entitya
                         where o.somecolumn != "blahh"
                         select new
                         {
                             id = o.id,
                             name = o.name
                         };

            return Json(new { data = result, total = result.count() }, JsonRequestBehavior.AllowGet);
        }
...