linq에서 SQL로 모두 선택 (*)하는 방법


84

linq to sql을 수행 할 때 모든 행을 어떻게 선택합니까?

Select * From TableA

쿼리 구문과 메소드 구문 모두에서하십시오.

답변:


104
from row in TableA select row

아니면 그냥 :

TableA

다른 연산자와 함께 메서드 구문에서 :

TableA.Where(row => row.IsInteresting) // no .Select(), returns the whole row.

기본적으로 이미 모든 열을 선택하고 있습니다. 그런 다음 선택은 원하는 열로 변환하므로 다음과 같은 작업도 수행 할 수 있습니다.

from user in Users select user.LastName+", "+user.FirstName

내가 좋아하는 또 다른 하나는 주어진 레코드 수에 대해 모든 열을 가져 오는 .Take (int)입니다. 이러한 TableA.Take (100)로
브라이언의

명시 적으로 사용할 필요가없는 이유를 설명해 주 from row in TableA.Rows시겠습니까? Rows기본 속성 이기 때문 입니까? LINQ의 기능입니까, 아니면 다른 곳에서 구워진 것입니까? 그냥 궁금해.
rory.ap

@roryap은 DB 액세스 라이브러리에 따라 다릅니다. 여기서는 LINQ to SQL을 가정합니다. 여기서 테이블은 행, ADO 또는 다를 수 있습니다.
Simon Buchan 2015

69

모든 행을 선택 하시겠습니까, 아니면 모든 열을 선택 하시겠습니까?

어느 쪽이든 실제로 아무것도 할 필요가 없습니다.

DataContext에는 각 테이블에 대한 속성이 있습니다. 해당 속성을 사용하여 전체 테이블에 액세스 할 수 있습니다.

예를 들면 :

foreach(var line in context.Orders) {
    //Do something
}

1
두 번째 질문입니다. 이것은 더 간단하고 OP의 질문에 더 직접적으로 대답하기 때문에 선택한 대답보다 훨씬 더 유용한 대답입니다.
tandrewnichols

2
이 답변이 최고의 답변이 될 가치가 있습니다. 하자이 :) 수정
d.popov

이 답변은 OP를 만족하지만 "보편적"이 아니기 때문에 언젠가는 반대 투표를 받았을 것입니다. 나를 위해 EF와 함께 사용할 때 allOrders는 IEnumerable이 아닌 DBSet이므로 그 직후에 allOrders.Where () 할 수 없습니다. 아마도 나는 그것을 잘못된 방식으로 사용하고 있거나 무언가를 놓쳤을 것입니다. 그러나 .Skip (0)을 추가하면 마법이 만들어졌습니다.
Charles Roberto Canato

24
using (MyDataContext dc = new MyDataContext())
{
    var rows = from myRow in dc.MyTable
               select myRow;
}

또는

using (MyDataContext dc = new MyDataContext())
{
    var rows = dc.MyTable.Select(row => row);
}

6
이들 중 어느 것도하지 마십시오. 대신 간단히 var rows = dc.MyTable.
SLaks

2
그는 쿼리 구문과 메서드 구문을 요청하여 내가 그에게주는 것입니다.
Simon Fox

3
그가 요구 한 것을주지 마십시오. 그가 필요한 것을 줘. 그는 분명히 LINQ-to-SQL을 잘 이해하지 못합니다.
SLaks

아니요, LINQ-to-SQL을 아직 잘 이해하지 못합니다. 그것에 관한 책을 읽을 시간이 없지만 정보가 필요할 때 주변을 둘러보기 시작합니다. 또한 Enity 프레임 워크가 더 나아질 때까지 기다리고 있습니다. 차라리 모든 데이터베이스를 사용할 수 있기 때문에 그것을 배우기 때문입니다.
chobo2

2
충분히 공평하지만 내가 제공 한 솔루션 중 하나에 문제가 없습니다. 더 복잡한 쿼리를 작성하는 관점에서 시작할 수있는 좋은 기반을 제공합니다.
Simon Fox

4

데이터베이스에서 모든 데이터를 선택하려면 다음을 시도하십시오.

dbclassDataContext dc= new dbclassDataContext()
List<tableName> ObjectName= dc.tableName.ToList();

그렇지 않으면 이것을 시도 할 수 있습니다.

var Registration = from reg in dcdc.GetTable<registration>() select reg;

및 방법 Syntex :-

 var Registration = dc.registration.Select(reg => reg); 


1

다음과 같이 간단한 linq 쿼리를 사용하여 SQL 테이블에서 모든 레코드를 선택할 수 있습니다.

var qry = ent.tableName.Select (x => x) .ToList ();


1

TableAtable의 엔터티 TableA, TableADBEntitiesDB Entity 클래스로 가정하면 ,

  1. LINQ 방법
IQueryable<TableA> result;
using (var context = new TableADBEntities())
{
   result = context.TableA.Select(s => s);
}
  1. LINQ-to-SQL 쿼리
IQueryable<TableA> result;
using (var context = new TableADBEntities())
{
   var qry = from s in context.TableA
               select s;
   result = qry.Select(s => s);
}

Native SQL은 다음과 같이 사용할 수도 있습니다.

  1. 네이티브 SQL
IList<TableA> resultList;
using (var context = new TableADBEntities())
{
   resultList = context.TableA.SqlQuery("Select * from dbo.TableA").ToList();
}

참고 : dboSQL Server의 기본 스키마 소유자입니다. SELECT컨텍스트에서 데이터베이스에 따라 SQL 쿼리를 구성 할 수 있습니다 .


0

왜 사용하지 않습니까

DbTestDataContext obj = new DbTestDataContext();
var q =from a in obj.GetTable<TableName>() select a;

이것은 간단합니다.


0

몇 개를 제외하고 '모든'열을 검색해야하는 경우가 많습니다. 그래서 Select (x => x)는 나를 위해 작동하지 않습니다.

LINQPad의 편집기는 * 모든 열로 자동 확장 할 수 있습니다.

여기에 이미지 설명 입력

'* all'을 선택하면 LINQPad가 *를 확장 한 다음 필요하지 않은 열을 제거 할 수 있습니다.

여기에 이미지 설명 입력

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.