LINQ

C#, .NET 2011. 6. 17. 19:27
LINQ 관련링크
http://www.linqpad.net/ : head first C# 감수자중 한명인 죠 알바히리가 무료로 제공하는 LINQ 학습 툴


<LINQ와 관련된 의문들>

1. join 
이녀석은 기본적으로 natural join 만을 지원하는 모양이다.
join 에는 반드시 on .. equals 가 따라와야 하는데,
equals 이외의 연산자는 사용할 수 없다.
또한 equals 의 좌측에는 join 에서 사용한 변수는 사용할 수 없고
equals의 우측에는 join 에서 사용한 변수만 사용해야 한다.

var dlist = from dat1 in data1
              join dat2 in data2
              on dat1 equals dat2

이런식의 쿼리는 legal 하다.

그러나 아래와 같은 쿼리는 illegal 하다.

var dlist = from dat1 in data1
              join dat2 in data2
              on dat1 equals dat1

var dlist = from dat1 in data1
              join dat2 in data2
              on dat2 equals dat2



2.select new { } 로 익명타입 사용시
쿼리의 select 절에서 select new { a.b.c, d, e.f } 라고 썼다면...

foreach 문에서 결과를 하나씩 뽑아 쓸 때 attribute(?) 이름은 각각 c,d,f 가 된다. (IDE가 알아서 해줌)

이름이 중복되는 것은 허용하지 않는다.



3.MySQL, Oracle 과 LINQ를 연결하는 방법?
VS에서 직접 만든 SQL database와 LINQ를 연결하는 LINQ to SQL 클래스가 있듯이
Oracle의 경우 유료 LINQ to Oracle 클래스가 있다.
(MySQL 은 유료인지 무료인지 잘 모르겠다)

그런데 이건 닷넷 3.5부터 출시된 Entity framework 를 사용하면 되므로 필요가 없다고도 한다...
장단점이 있다고도 하고.. 

이에 대한 자세한 글은 별도로 적어둔다.


'C#, .NET' 카테고리의 다른 글

Invader  (0) 2011.06.17
Entity Framework  (0) 2011.06.17
Hive Simulator  (0) 2011.06.17
확장 메소드와 static class  (0) 2011.06.17
struct  (0) 2011.06.17
Posted by 휘사마
,