2014-11-26 1 views
0

내 상황을 요약하면 다음과 같습니다. 이벤트에 날짜 속성이 있습니다. 기본적으로 특정 날짜에 대한 이벤트 수를 나열하는 새 테이블을 만들어야합니다. 내가하고 싶은 무엇LINQ를 사용하여 결과 테이블을 새로 만드는 방법은 무엇입니까?

enter image description here

날짜를 선택 거라고이 사용 LINQ에서 새 테이블을 만들 수있을 것입니다 :

그래서 내가 그렇게 같은 일련의 레코드를 가지고 가정 다음과 같이 해당 날짜에 이벤트의 수 :

enter image description here

난 정말 모르겠어요이 곳이 문을 만드는 시작합니다. 나는 누군가가 올바른 방향으로 나를 가리킬 수 있는지 궁금 해서요?

감사

편집 : 나의 사과는 - 내가 조금 혼란스러워했다 보인다! 나는 실제로 NHibernate를 사용하고 있으며 모든 날짜에 대한 모든 이벤트의 콜렉션을 리턴하는 명령문을 가지고있다.

는 난 그냥 컬렉션을 반복 내가 :-)

+0

Linq는? EF? GroupBy를 사용해 보셨습니까? –

+0

글쎄, 왜 linq으로 TABLE을 만들고 싶니? 'IQueryable '을 만들 수 있습니다. 또는 DB에 뷰를 생성하십시오. 아니 ? –

+0

스프레드 시트의 스크린 샷이 아니라 데이터 구조를 나타내는 코드를 게시하십시오. 예 : 'Event' 클래스가 있고'IEnumerable '을'Event.EventDate'에 의해 그룹화하고 싶습니다. –

답변

1

글쎄, LINQ로해야 할 일은 GroupBy 날짜뿐입니다.

Here's 한 예 : 무엇을

/// <summary> 
    /// Your entity 
    /// </summary> 
    public class Events 
    { 
     public int EventID { get; private set; } 
     public string Name { get; set; } 
     public DateTime EventDate { get; set; } 
    } 

    public class Program 
    { 
     static void Main(string[] args) 
     { 
      // Query all events 
      IEnumerable<Events> events = null; 

      // Group them by Date 
      events 
       .GroupBy(e => e.EventDate) 
       .Select(g => new 
       { 
        Date = g.Key, 
        Count = g.Count() 
       }); 
     } 
    } 
+0

브루노 감사합니다. 실제로이 변형을 사용했습니다. – alimac83

1

LINQ는 데이터 세트/컬렉션을 quering를 들어, 테이블을 생성 할 수있다 필요로하는 데이터를 포함하는 클래스의 새 컬렉션을 구축 할 수 있습니다 지금 실현 또는 기타 데이터베이스 오브젝트를 포함 할 수 있습니다. 조만간 데이터베이스 테이블을 동적으로 생성해야하는 경우 SQL 명령을 DB에 직접 보내고 linq-to-sql 또는 EF를 사용하면 생성 된 스키마 코드를 사용하여 이러한 테이블을 쉽게 쿼리 할 수 ​​없습니다). 내가 할 수있는 일은 저장 프로 시저를 작성하는 것이고 결과 테이블을 생성하기위한 것이고 두 번째는 데이터를 삽입하는 것입니다 (많은 양의 데이터를 사용하고 일괄 삽입을 대신 사용합니다). 그리고 세 번째는 데이터를 읽는 데 필요합니다.). EF에서는 저장 프로 시저를 메서드에 매핑 할 수 있으므로 "CREATE TABLE"+ tableName + "..."등 코드에서 직접 작성하는 것보다 훨씬 쉽게 구조화됩니다. 여전히 매개 변수로 테이블 이름을 전달해야하지만 실제로 스키마가없는 데이터베이스가 될 작업을 원한다면 분명히 알 수 있습니다. 고려해야 할 기타 옵션 : 1. nosql을 사용하는 경우 2. 모든 결과를 signle 테이블에 보관하고 테이블 이름을 유지하는 열을 추가하십시오. 3. 결과를 일종의 XML로 serialize하고 전체 결과 XML 삽입 key-value 테이블의 엔트리로서, 키는 테이블 이름이 될 것이다.

테이블에 저장할 데이터의 양과 업데이트해야하는 데이터의 양은 모두 다릅니다.

관련 문제