2017-05-23 11 views
0

私はXamarinアプリのsqliteのデータベースを使用していると私は私のデータモデルにSQLiteの照合属性

public class Customer 
{ 
    [PrimaryKey, AutoIncrement] 
    public int ID { get; set; } 

    [Collation("NOCASE")] 
    public string Name { get; set; } 

    public string Email { get; set; } 

} 

を照合属性を設定するトリングだが、私は、私は、照合に設定する必要がありますどの値どこにも見つからないでください名前cの大文字小文字を区別しないために:結果が期待

var dbfile = DependencyService.Get<IFileHelper().GetLocalFilePath("data.db"); 

db = new SQLiteAsyncConnection(dbfile); 
db.CreateTableAsync<Customer>().Wait(); 
var result = await db.Table<Customer>().OrderBy(c => c.Name).ToListAsync(); 

:これは私のテストコードで大文字と小文字が区別/大文字小文字を区別しない照合

を制御する属性olumn、

実際の結果:注文は大文字と小文字が区別されます。解決

+0

1) var sortedWords = words.OrderBy(a => a.Name、StringComparer.OrdinalIgnoreCase); 2) sortedWords = words.OrderBy(a => a.Name、StringComparer.CurrentCultureIgnoreCase); 3) sortedWords = words.OrderBy(a => a.Name、StringComparer.InvariantCultureIgnoreCase); –

+0

申し訳ありませんが、StringComparerを指定できるOrderByメソッドのオーバーロードが見つかりませんでした –

答えて

0

属性

[Collation("NOCASE")] 

が追加された後に、その表を削除する必要があり、再receated。通常のsqlite自動的に変更した後、テーブルを更新するコマンド

db.CreateTableAsync<Customer>().Wait() 

が実行されるが、この場合には、ドロップ/テーブルを削除が必要な場合。

関連する問題