는 아마 다음과 같을 것 작동하지 않는다 :
OrderBy(ofg => ofg.FirstName)
개체에 FirstName
필드가 없으므로 (만 FullName
및 ContactID
.) 해당 필드에 의해 주문해야하는 경우, 당신이 그것을 선택해야합니다 :
select new { FirstName = ofg.FirstName, FullName = ofg.FirstName + ofg.Surname, ContactID = ofg.ContactID }
당신은 또한 당신의 FullName
필드는 이름 사이에 공백을 추가하지 않습니다이 논리에서 찾을 수 있습니다 . 원하는 경우 논리에 포함시켜야합니다.
익명 객체 대신 실제 모델의 경우에는 FullName
필드와 같은 것이 종종 좋은 사례입니다. 이런 식으로 뭔가를 생각해 자신이 속한 객체에 FullName
로직을 캡슐화하는 것입니다, 당신은 단지 그 개체의 인스턴스를 선택할 수 있습니다
public class SomeModel
{
public string FirstName { get; set; }
public string Surname { get; set; }
public int ContactID { get; set; }
public string FullName
{
get
{
return string.Format("{0} {1}", FirstName, Surname);
}
}
}
:
select new SomeModel { FirstName = ofg.FirstName, Surname = ofg.Surname, ContactID = ofg.ContactID }
이 방법이 걸리는 코드는 않을 것 모델을 생성하는 논리를 복제해야하는 경우 모델 자체는 소유하고있는 논리를 포함합니다. 그런 다음 계속해서 더 많은 기능을 추가하고 단일 모델로 중앙 집중화 할 수 있습니다.
예가 효과가 있습니까? 만약 당신이 어떤 예외가 있습니까? 왜 DB가 아닌 코드를 통해이 작업을 수행합니까? – ChrFin