不支持直接绑定到存储查询(DbSet、DbQuery、DbSqlQuery、DbRawSqlQuery)的数据

本文关键字:DbSqlQuery DbQuery DbRawSqlQuery 数据 DbSet 绑定 查询 存储 不支持 | 更新日期: 2023-09-27 18:28:24

标题中有错误:不支持直接绑定到存储查询(DbSet、DbQuery、DbSqlQuery、DbRawSqlQuery)的数据我尝试过搜索可能的修复程序,但找不到对我有效的修复程序。

这是我的DataLayer:

public virtual IQueryable<T> All()
{
    return this.DbSet.AsQueryable();
}

我的控制器:

public IQueryable<Movie> GetAllMovies()
 {
     var data = this.Data.Movies.All().Select(x => new Movie
     {
         Id = x.Id,
         Name = x.Name,
         ReleaseDate = x.ReleaseDate,
         Rating = x.Rating,
         Duration = x.Duration,
         Director = x.Director,
         Writer = x.Writer,
         Cost = x.Cost,
         Type = x.Type
        }).OrderBy(x => x.Id);
        return data;
    }

还有我的GUI,我称之为:

public MovieManagementGUI()
    {
        InitializeComponent();
        ***this.radListView1.DataSource = movieCtr.GetAllMovies();*** //<-- Here I am getting the error
        this.radListView1.ViewType = ListViewType.IconsView;
        this.radListView1.AllowEdit = false;
        this.radListView1.AllowRemove = false;
        ImagePrimitive searchIcon = new ImagePrimitive();
        searchIcon.Alignment = ContentAlignment.MiddleRight;

        SetupIconsView();
    }

我正在尝试从数据库中获取所有数据,并将其发布在ListView中。有人能看一下代码并试着修复我吗?如果你需要额外的代码,请告诉我。

谢谢你,

Marius J.

不支持直接绑定到存储查询(DbSet、DbQuery、DbSqlQuery、DbRawSqlQuery)的数据

我设法解决了我的问题,我创建了一个新的DTO类并编辑了我的控制器:

    public IEnumerable<MovieDTO> GetAllMovies()
    {
        var data = this.Data.Movies.All().Select(x => new MovieDTO
        {
            Id = x.Id,
            Name = x.Name,
            ReleaseDate = x.ReleaseDate,
            Rating = x.Rating,
            Duration = x.Duration,
            Director = x.Director,
            Writer = x.Writer,
            Cost = x.Cost,
            Type = x.Type
        }).OrderBy(x => x.Id).ToList();
        return data;
    }