使用以下模型:
public class Person
{
public int PersonId { get; set; }
[Display(Name = "First Name")]
public string FirstName { get; set; }
[Display(Name = "Middle Name(s)")]
public string MiddleNames { get; set; }
public string Surname { get; set; }
public string Name
{
get
{
List<string> name = new List<string>();
name.Add(this.FirstName);
name.Add(this.MiddleNames);
name.Add(this.Surname);
return String.Join(" ", name.Where(n => !String.IsNullOrEmpty(n)));
}
}
}
我想创建一个PagedList的视图模型,如下所示:
public class PersonSearch
{
public int PersonId { get; set; }
public string Name { get; set; }
}
最有效的方法是什么?
我不能使用下面的内容,因为它在Name上给出了一个错误,这是预期的
var model = db.person.OrderBy(p => p.Surname)
.ThenBy(p => p.FirstName)
.Select(p => new PersonSearch
{
PersonId = p.PersonId,
Name = p.Name
})
.ToPagedList(page, 25);
LINQ to Entities
中不支持指定的类型成员“Name”
以下有效,但它首先涵盖了整个人员名单:
var model = db.person.OrderBy(p => p.Surname)
.ThenBy(p => p.FirstName)
.ToList()
.Select(p => new PersonSearch
{
PersonId = p.PersonId,
Name = p.Name
})
.ToPagedList(page, 25);
以下内容不起作用,因为它删除了分页信息:
var model = db.person.OrderBy(p => p.Surname)
.ThenBy(p => p.FirstName)
.ToPagedList(page, 25);
.Select(p => new PersonSearch
{
PersonId = p.PersonId,
Name = p.Name
})
.ToPagedList(page, 25);
答案 0 :(得分:0)
在<?php
class Apple
{
public function showColor()
{
return $this->color;
}
}
class Banana
{
public $color;
public function __construct()
{
$this->color = "Banana is yellow";
}
public function GetColor()
{
$apple = new Apple();
return $apple->showColor();
}
}
$banana = new Banana;
var_dump($banana->GetColor());
?>
模型中添加构造函数,以便生成全名
PersonSearch
然后在您的查询中使用
public class PersonSearch
{
public PersonSearch()
{
}
public PersonSearch(string first, string middle, string last)
{
// format and remove leading or trailing white space as a result of nulls
string name = string.Format("{0} {1} {2}", first, middle, last).Trim();
// remove any internal extra white space if middle is null
if (string.IsNullOrWhiteSpace(middle))
{
name = String.Join(" ", name.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries));
}
Name = name;
}
public int PersonId { get; set; }
public string Name { get; set; }
}