您好我使用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>
答案 0 :(得分:-1)
通常使用in关键字完成如下。
这是MVC 3,这是在使用Entity框架的控制器中。
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);
}