2010-04-16 5 views
0

그것은 내 첫 번째 LINQ TO SQL 프로젝트이므로 확실히 내 질문은 순진 할 수 있습니다. 난 내 날짜 시간 속성에 어떤 처리를 할 필요 .Like UI에 바인딩 컨트롤 특별한 문자열 형식으로 표시하기 때문에
SQL에 linq의 속성 처리

는 지금까지 내가 모든 날짜 시간 재산권의 옆에 비즈니스 오브젝트의 새로운 속성을 만드는 데 사용, 그건 :

 
private DateTime _insertDate; 
/// 
/// I have "InertDate" field in my Table on Database 
/// 
public DateTime InsertDate 
{ 
    get { return _insertDate; } 
    set { _insertDate = value; } 
}

// Because i need to do some processing I create a readonly string property that pass InsertDate to Utility method and return special string Date public string PInsertDate { get { return Utility.ToSpecialDate(_insertDate); } }

내 질문은 내가 LINQ에서 작업을 수행하는 방법을 모르는 것입니다. 나는 따르는 것을 좋아했지만, 나는 런타임 오류를 얻는다.

 
ToosDataContext db = new ToosDataContext(); 
var newslist = from p in db.News 
       select new {p.NewsId,p.Title,tarikh =MD.Utility.ToSpecialDate(p.ReleaseDate)};

GridView1.DataSource = newslist; GridView1.DataBind();

+0

어떤 오류가 발생 했습니까? 오류가 발생했을 때 질문 할 때마다 * 오류가 무엇인지 게시하십시오. –

+0

어떤 오류를 받았는지 게시하는 것이 유용 할 것입니다. – Axarydax

답변

2

당신은 과정에서 수행되는 처리에서 데이터베이스에 수행 된 쿼리를 분리 할 필요가있다 "방법 '선택 System.String ToSpecialDate (은 System.Object)는'SQL에 지원되는 변환이 없습니다." 사용해보기 :

var newslist = db.News 
       // First do a select in SQL 
       .Select(p => new {p.NewsId, p.Title, p.ReleaseDate}) 
       .AsEnumerable() // Do the rest in process 
       .Select(p => new {p.NewsId, p.Title, 
         tarikh = MD.Utility.ToSpecialDate(p.ReleaseDate) });