2014-11-15 7 views
0

NpsqlNpsql.EntityFramework 패키지를 사용하여 Entity Framework가있는 PostgreSQL 데이터베이스에 매핑하려고합니다. 내가 대중에게 스키마를지도 데이터베이스 컨텍스트에서Column Extent1.Id가 Entity Framework 6 및 PostgreSQL과 함께 Mono에 존재하지 않습니다.

public class Crop 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public Month SowingMonths { get; set;} //Month is an enum 
}  

모든 테이블은 기본적으로 스키마 공개에 있기 때문에 다음과 같이

CREATE TABLE IF NOT EXISTS Crops (
    Id   INT PRIMARY KEY  NOT NULL, 
    Name   TEXT    NOT NULL, 
    SowingMonths INT 
); 

Crop 모델 보이는 : 나는 다음과 같은 테이블이있는 데이터베이스를 PostgreSQL.

Npgsql.NpgsqlException
ERROR: 42703: column Extent1.Id does not exist
Description: HTTP 500.Error processing request.
Details: Non-web exception. Exception origin (name of application or object): Npgsql.
Exception stack trace:
at Npgsql.NpgsqlState+d__0.MoveNext() [0x00000] in :0 at Npgsql.ForwardsOnlyDataReader.GetNextResponseObject (Boolean cleanup) [0x00000] in :0

좋은 소식은 테이블을 찾을 수있는 데이터베이스 (이 not 수 처음에는 지금 : 나는 DbContext의 작물에 액세스하려고 뷰를 열 때

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{ 
    modelBuilder.HasDefaultSchema("public"); 
} 

는 지금은이 메시지 , OnModelCreating 메소드의 공개 스키마에 매핑 할 수 있습니다). 그러나 열 이름 Extend.Id을 찾을 수 없습니다.

Extend.Id을 찾으려하는 이유가 저를 뛰어 넘습니다. Crops 모델의 속성을 Id으로 정의한 이유는 Extend.Id입니다. 그러나 이것이 사실이라고 생각하면, 어떻게 이것을 작동시킬 수 있습니까? Id 대신에 Extend1.Id 속성을 사용하여 데이터베이스 테이블을 만들 수 있습니까? 그렇다면 어떻게해야합니까?

감사합니다.

답변

2

코드 어딘가에 인쇄상의 오류가있는 것으로 확신합니다. 테이블 "Id"는 단순히 존재하지 않습니다. 대문자는 아마도?

+0

마스터 영웅 감사합니다. 이것은 사실이었다. 열 이름을 대문자로 변경 한 후 문제가 해결되었습니다! 감사합니다. 감사합니다. 추신 : [Extent1]이 무엇인지 말해 주실 수 있겠습니까? –