2017-03-15 24 views
0

私はuwpアプリケーションを開発しています。私はエンティティモデルを使用してsqliteデータベースにテーブルを作成しています。私は2つの列がプライマリキーを構成するテーブルで状況があります。しかし、私はコンポジットキーを持つテーブルを作成することができません。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

関連する問題