복붙노트

[SQL] 쿼리 패턴의 구현을 찾을 수 없습니다

SQL

쿼리 패턴의 구현을 찾을 수 없습니다

내 Silverlight 응용 프로그램에서 나는 LINQ를 사용하여 데이터베이스 연결을 만들려고하고 있습니다. 우선은 SQL 클래스에 새로운 LINQ를 추가하고 그것으로 "tblPersoon"라는 내 테이블을 끕니다.

그런 다음 내 서비스 파일에서 나는 다음과 같은 쿼리를 실행하려고 :

[OperationContract]
public tblPersoon GetPersoonByID(string id)
{
    var query = (from p in tblPersoon where p.id == id select p).Single();

그러나 tblPersoon에서 그것은 나에게 다음과 같은 오류를 제공합니다.

그리고 심지어는 다음을하려고 할 때 :

var query = (from p in tblPersoon select p).Single();

그것은 '선택'을 (를) 찾을 수 없습니다 말을 나에게 오류를 제공합니다!

내 테이블에 대해 생성 된 클래스에 대한 코드는 여기에서 찾을 수 있습니다 : http://pastebin.com/edx3XRhi

어떤이의 원인이되는 방법 나는 아마도이 문제를 해결까요?

감사합니다.

해결법

  1. ==============================

    1.를 IEnumerable 구현 tblPersoon인가? 당신은 사용하여 수행해야 할 수 있습니다 :

    를 IEnumerable 구현 tblPersoon인가? 당신은 사용하여 수행해야 할 수 있습니다 :

    var query = (from p in tblPersoon.Cast<Person>() select p).Single();
    

    이러한 종류의 오류 (쿼리 패턴의 구현을 찾을 수 없습니다)는 보통 때 발생합니다

    편집하다:

    그렇다 사실 대신 속성 tblPersoons의 (tblPersoon)를 입력 쿼리, 당신은 또한이 같은 컨텍스트 인스턴스 (클래스가 정의의 tblPersoons 속성)가 필요 :

    public tblPersoon GetPersoonByID(string id)
    {
        var context = new DataClasses1DataContext();
        var query = context.tblPersoons.Where(p => p.id == id).Single();
        // ...
    
  2. ==============================

    2.당신은 파일에 사용하여 문을 추가해야 할 수도 있습니다. 기본 실버 라이트 클래스 템플릿은 포함되지 않습니다

    당신은 파일에 사용하여 문을 추가해야 할 수도 있습니다. 기본 실버 라이트 클래스 템플릿은 포함되지 않습니다

    using System.Linq;
    
  3. ==============================

    3.확인이 참조가 포함되어 있는지 확인합니다 :

    확인이 참조가 포함되어 있는지 확인합니다 :

    그런 다음 사용하여 문을 추가

    using System.Linq;
    
  4. ==============================

    4.내가 생성 된 강력한 형식의 데이터 세트와 비슷한 문제가 있었다, 전체 오류 메시지가 있었다 :

    내가 생성 된 강력한 형식의 데이터 세트와 비슷한 문제가 있었다, 전체 오류 메시지가 있었다 :

    내 코드에서 :

            var x =
                from row in ds.InvcHead
                where row.Company == Session.CompanyID
                select row;
    

    이 제안 명시 적으로 유형을 규정 내가 한 그래서 :

            var x =
                from MyApp.InvcHeadRow row in ds.InvcHead
                where row.Company == Session.CompanyID
                select row;
    

    어떤 치료를했다.

  5. ==============================

    5.당신은 평등을 누락 :

    당신은 평등을 누락 :

    var query = (from p in tblPersoon where p.id == 5 select p).Single();
    

    where 절은 부울 발생해야합니다.

    또는 어디 전혀 사용하지 않아야 :

    var query = (from p in tblPersoon select p).Single();
    
  6. ==============================

    6.제목 설명 된 바와 같이 저도 같은 오류를했다,하지만 나를 위해 단순히 마이크로 소프트 액세스를 LinqToExcel에 사용할 12.0 OLEDB 재배포를 설치했다.

    제목 설명 된 바와 같이 저도 같은 오류를했다,하지만 나를 위해 단순히 마이크로 소프트 액세스를 LinqToExcel에 사용할 12.0 OLEDB 재배포를 설치했다.

  7. ==============================

    7.안녕하세요이 작업을 수행하는 가장 쉬운 방법은 Queryable에서에이 IEnumerable을 변환하는 것입니다

    안녕하세요이 작업을 수행하는 가장 쉬운 방법은 Queryable에서에이 IEnumerable을 변환하는 것입니다

    그것은 쿼리 가능 인 경우, 쿼리를 수행하는 것은 쉽게된다.

    이 코드를 확인하십시오 :

    var result = (from s in _ctx.ScannedDatas.AsQueryable()
                                  where s.Data == scanData
                                  select s.Id).FirstOrDefault();
                    return "Match Found";
    

    당신이을 System.Linq을 포함합니다. 당신의 오류가 해결 될 것입니다 이런 식으로.

  8. ==============================

    8.(나처럼)이 오류로부터의 낭비 너무 많은 시간을 위해 :

    (나처럼)이 오류로부터의 낭비 너무 많은 시간을 위해 :

    하지만 나를 DbContext 수준에서 실수를 고정 된위한 솔루션 "소스 유형 'DbSet'에 대한 질의 패턴의 구현을 찾을 수 없습니다": 저도 같은 오류가 발생했다.

    내 컨텍스트를 생성 할 때 나는이 있었다 :

    public class ContactContext : DbContext
        {
            public ContactContext() : base() { }
    
            public DbSet Contacts { get; set; }
        }
    

    그리고 내 저장소 (나는 ASP.NET 가이드의 저장소 패턴을 다음되었다)이 모습 :

    public Contact FindById(int id)
        {       
            var contact = from c in _db.Contacts where c.Id == id select c;
            return contact;
        }
    

    내가 대신 유형의 일반적인로 DbSet을 사용할 때 내 문제는 내 DbContext의 초기 설정에서왔다.

    나는 공공 DbSet 연락처를 변경 {얻으십시오; 세트; } 공공 DbSet <연락처> 연락처에 {얻으십시오; 세트; } 갑자기 쿼리가 인정되었다.

    이 k.m는 그의 대답에서 말하는 아마도,하지만 그가 언급 한 이후로는 IEnumerable 가 아니라 나는이 두통의 원인이 된 라인을 찾기 위해 몇 시간 동안 코드에서 주위를 발굴했다 DbSet << YourDomainObject >>.

  9. ==============================

    9.저도 같은 오류를했다,하지만 나를 위해, 그것은 데이터베이스와 같은 이름 한 테이블을 데 기인했다. 내 프로젝트에 ADO .NET 엔터티 개체를 추가 할 때, 내가 내 데이터베이스 컨텍스트 파일에 원하는 것을 misgenerated :

    저도 같은 오류를했다,하지만 나를 위해, 그것은 데이터베이스와 같은 이름 한 테이블을 데 기인했다. 내 프로젝트에 ADO .NET 엔터티 개체를 추가 할 때, 내가 내 데이터베이스 컨텍스트 파일에 원하는 것을 misgenerated :

    // Table
    public virtual DbSet<OBJ> OBJs { get; set; }
    

    이는 봤는데한다 :

    public virtual DbSet<OBJ> OBJ { get; set; }
    

    // Database?
    public object OBJ { get; internal set; }
    

    나는 그것을 주석 있도록하는 사실은 정말 필요하지 않았다.

    나는 나의 오류를 받았을 때, 내 컨트롤러,이 같은 내 테이블에 끌어하려고했다 :

    protected Model1 db = new Model1();
    
    public ActionResult Index()
    {
        var obj =
            from p in db.OBJ
            orderby p.OBJ_ID descending
            select p;
    
        return View(obj);
    }
    

    내 데이터베이스 컨텍스트를 수정하고 모두 그 후, 괜찮습니다.

  10. from https://stackoverflow.com/questions/8215773/could-not-find-an-implementation-of-the-query-pattern by cc-by-sa and MIT license