2017-03-15 1 views
0

uwp 앱을 개발 중입니다. 엔티티 모델을 사용하여 sqlite 데이터베이스에 테이블을 만듭니다. 두 열이 기본 키를 구성하는 테이블이있는 상황이 있습니다. 하지만 복합 키가있는 테이블을 만들 수는 없습니다. 여기uwp에서 sqlite를 사용하는 Entity Framework의 복합 키

public class Denomination_Master 
{ 
     [MaxLength(50), NotNull] 
     public string den_name { get; set; } 
     [NotNull,PrimaryKey] 
     public float den_value { get; set; } 
     [MaxLength(50), Indexed] 
     public string den_type { get; set; } 
     [MaxLength(250), Default(value: null)] 
     public string den_image { get; set; } 
     [MaxLength(250), Default(value: null)] 
     public string description { get; set; } 
     [Default(value: null)] 
     public string created_date { get; set; } 
     [Default(value: null)] 
     public string updated_date { get; set; } 
     [MaxLength(80), Default(value: null)] 
     public string role_name { get; set; } 
     [MaxLength(80), Default(value: null)] 
     public string user_name { get; set; } 
     [MaxLength(4), Default(value: null)] 
     public bool? status { get; set; } 
} 

using (SQLiteConnection conn = new SQLiteConnection(new SQLitePlatformWinRT(), sqlpath)) 
{ 
    conn.CreateTable<Denomination_Master>(); 
} 

https://github.com/oysteinkrog/SQLite.Net-PCL 내가 이런 걸 발견 :

나는 테이블 작성에 사용한 코드는

public class Stock 
{ 
    [PrimaryKey, AutoIncrement] 
    public int Id { get; set; } 
    [MaxLength(8)] 
    public string Symbol { get; set; } 
} 

public class Valuation 
{ 
    [PrimaryKey, AutoIncrement] 
    public int Id { get; set; } 
    [Indexed] 
    public int StockId { get; set; } 
    public DateTime Time { get; set; } 
    public decimal Price { get; set; } 
} 

을하지만 내 열 데이터 유형이 어떻게 적용 할 수 있는지 int로하지 않습니다.?

+0

나는 단지 ** 하나의 열을 참조 ** ('den_value') 기본 키의 일부가되는 것은 - 그래서 이것은 정말 복합 기본 키가 없습니다. 귀하의 질문은 매우 불분명하다 ...... –

+0

den_value는 기본 키이지만 den_type에 대한 기본 키를 넣고 싶습니다. 또한 기본 기본 키를 사용해야한다고 생각합니다. – Archana

+0

@Archana는 Microsoft Entity Framework 또는 SQLite에 포함 된 ORM을 사용하고 있습니까? – bubi

답변

0

유창한 API를 사용하여 복합 키를 정의해야하며 복합 기본 키의 속성을 사용할 수 없습니다.

protected override void OnModelCreating(ModelBuilder modelBuilder) 
{ 
    modelBuilder.Entity<Denomination_Master>() 
     .HasKey(c => new { c.den_value, c.den_type }); 
} 

https://docs.microsoft.com/en-us/ef/core/modeling/keys