实体框架SQL语句

本文关键字:语句 SQL 框架 实体 | 更新日期: 2023-09-27 18:27:57

我想从名为StiriDB的数据库中查询表News。在那里,我要取Description字段中的所有条目,即SearchTxt中的单词Stored。我不太明白SqlQuery方法想从我这里得到什么。。。这是代码:

public IQueryable<News> GetProducts()
{
    var _db = new SiteStiri.Models.NewsContext();
    String SearchTxt = Convert.ToString(Request.QueryString["Cauta"]);
    String queryTxt = "Select * from StiriDB.News where Description like '%" + SearchTxt + "%'";
    IQueryable<News> query = _db.News.SqlQuery<News>(queryTxt);
    if ("DesDate".Equals(DropDownSelect.SelectedItem.Value))
    {
        query = query.OrderByDescending(u => u.ReleaseDate);
    }
    if ("AsDate".Equals(DropDownSelect.SelectedItem.Value))
    {
        query = query.OrderBy(u => u.ReleaseDate);
    }
    if ("AsAlp".Equals(DropDownSelect.SelectedItem.Value))
    {
        query = query.OrderBy(u => u.NewsTitle);
    }
    if ("DesApl".Equals(DropDownSelect.SelectedItem.Value))
    {
        query = query.OrderByDescending(u => u.NewsTitle);
    }
    return query;
}

其他详细信息:GetProducts由ListView调用。CCD_ 8与CCD_ 10的CCD_。许多if用于根据某些标准按升序和降序对数据进行排序(if有效,我只需要SqlQuery即可按预期工作);

实体框架SQL语句

使用Linq到实体查询,类似于。。。

public IQueryable<News> GetProducts()
{
    var ctx = new SiteStiri.Models.NewsContext();
    var query = from n in ctx.News
                where n.Description.Contains(SearchTxt)
                select n;
    if ("DesDate".Equals(DropDownSelect.SelectedItem.Value))
    {
        query = query.OrderByDescending(u => u.ReleaseDate);
    }
    else if ("AsDate".Equals(DropDownSelect.SelectedItem.Value))
    {
        query = query.OrderBy(u => u.ReleaseDate);
    }
    else if ("AsAlp".Equals(DropDownSelect.SelectedItem.Value))
    {
        query = query.OrderBy(u => u.NewsTitle);
    }
    else if ("DesApl".Equals(DropDownSelect.SelectedItem.Value))
    {
        query = query.OrderByDescending(u => u.NewsTitle);
    }
    return query;
}