我想將字段連接到一個非字段是一個屬性相同的模型。LINQ到SQL,連接字段沒有新的動態類型創建
我有Person
一個模型,該模型包括一個非字段屬性(NotMapped)稱爲FullName
:
public class Person
{
public int Id{get;set;}
public string firstname{get;set;}
public string lastname{get;set;}
[NotMapped]
public string FullName{get;set;}
}
現在我想選擇所有人員及其FullName
這
FullName = string.format("{0} {1}",firstname, lastname);
我不由於沒有良好的性能和速度(對於約10K記錄),因此想要在每個人列表後分配完整姓名
除非你能爲我提供它與串連領域公式通用型號和表達動態lambda函數我不想使用新的選擇(動態類型),如下
var list = from pf in db.Persons
select new
{
Person = pf,
FullName = string.format("{0} {1}", pf.firstname, pf.lastname)
}
List<Person> persons = new List<Person>();
// bad performance
foreach(var item in list)
{
item.Person.FullName = item.FullName;
persons.Add(item);
}
。
例如:
public List<TModel> GetList<TModel>(Expression<Func<TModel, string>> cField = null,...)
{
//all should done in database side with one query
//select all records include FullName
}
我不想使用FullName.get
public string FullName
{
get { return string.format("{0} {1}", pf.firstname, pf.lastname); }
}
,因爲它是一樣的foreach方法,具有當您使用的datagridview該類糟糕的表現。
換句話說,我需要的是一個linq查詢,選擇所有人及其全名。
請注意,數據庫選擇後的任何賦值(特別是在與接口一起使用時)性能較差。
你就不能使用它作爲'公共字符串全名{{返回的String.Format( 「{0} {1}」,名字,姓氏); }}'? – kiziu
不!因爲fullname是一個示例,我需要的是超過5個字段的連接,因此處理FullName.get將花費寶貴的時間。它將綁定到datagridview – Hamid