Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 对不带';不存在于数据库中_C#_Entity Framework_Sorting - Fatal编程技术网

C# 对不带';不存在于数据库中

C# 对不带';不存在于数据库中,c#,entity-framework,sorting,C#,Entity Framework,Sorting,在我的模型中,有一个属性是其他模型的组合 public string PiramideId => (string.IsNullOrWhiteSpace(GEMEENTECODE) ? "" : GEMEENTECODE.Trim()) + "-" + (string.IsNullOrWhiteSpace(WIJKCODE) ? "" : WIJKCODE.Trim()) + "-" + (string.IsNullOrWhiteSpace(GROEPCODE) ? "" :

在我的模型中,有一个属性是其他模型的组合

        public string PiramideId => (string.IsNullOrWhiteSpace(GEMEENTECODE) ? "" : GEMEENTECODE.Trim()) + "-" + (string.IsNullOrWhiteSpace(WIJKCODE) ? "" : WIJKCODE.Trim()) + "-" + (string.IsNullOrWhiteSpace(GROEPCODE) ? "" : GROEPCODE.Trim()) + "-" + (string.IsNullOrWhiteSpace(STRAATCODE) ? "" : STRAATCODE.Trim()) + "-" + (string.IsNullOrWhiteSpace(GEBOUWCODE) ? "" : GEBOUWCODE.Trim()) + "-" + (string.IsNullOrWhiteSpace(HUISNR) ? "" : HUISNR.Trim());
当我在实体框架中调用时,当我尝试对
PiramideId
EF进行排序时,返回一个错误,表示该列在数据库中不存在。有没有一种方法可以告诉EF,吡拉米肽柱基本上是几种组合在一起的

在得到所有项目的列表后,我尝试进行排序,尽管这样做有效,但这并不是我想要的,因为我必须在数据库中获取所有记录,而我只需要前30个记录

查询示例:

PagedView.Context.PERSOON.Join(PagedView.Context.VERHURINGEN, persoon => persoon.ComputerNr,
                        verhuring => verhuring.PersoonsID, (persoon, verhuring) => new {persoon, verhuring})
                    .Join(PagedView.Context.EENHEID, @t => @t.verhuring.Eenheid, eenheid => eenheid.ComputerNr,
                        (@t, eenheid) => new PersoonDTO
                        {
                            ComputerNr = @t.persoon.ComputerNr,
                            FAMILIENAAM = @t.persoon.FAMILIENAAM,
                            VOORNAAM = @t.persoon.VOORNAAM,
                            NAAM = @t.persoon.NAAM,
                            ADRES = @t.persoon.ADRES,
                            Een = eenheid
                        }).OrderBy(p => p.Een.PiramideId).ToList();

实体框架的工作原理是生成SQL语句,查询数据库,然后将结果映射到模型。在这种特殊情况下,它无法生成SQL语句,因为它不知道PiramideId是什么。您可以通过执行查询,然后进行排序来解决这个问题。让它执行查询的最简单方法是使用
AsEnumerable
。这给你

PagedView.Context.PERSOON
                 .Join(PagedView.Context.VERHURINGEN, 
                       persoon => persoon.ComputerNr,
                       verhuring => verhuring.PersoonsID,
                       (persoon, verhuring) => new {persoon, verhuring})
                 .Join(PagedView.Context.EENHEID,
                       @t => @t.verhuring.Eenheid,
                       eenheid => eenheid.ComputerNr,
                       (@t, eenheid) => new PersoonDTO
                       {
                           ComputerNr = @t.persoon.ComputerNr,
                           FAMILIENAAM = @t.persoon.FAMILIENAAM,
                           VOORNAAM = @t.persoon.VOORNAAM,
                           NAAM = @t.persoon.NAAM,
                           ADRES = @t.persoon.ADRES,
                           Een = eenheid
                       })
                 .AsEnumerable()
                 .OrderBy(p => p.Een.PiramideId)
                 .ToList();