MAUIでiOSアプリの開発!

MAUIを使ったiOSアプリの開発についての技術的なメモです。

sqlite-net-pclで使用するテーブル定義用のクラスに、複数のPrimaryKeyを指定する方法

SQLiteでテーブル定義用のクラスを使用しますが、PrimaryKeyを複数指定する方法について。

Xamarin.iOS SQLite.NET を使用する - Xamarin | Microsoft Docs

より、複数の主キーには対応してないとのこと。 

PrimaryKeyが1つなら、

 
    [Table("stock")]
    public class Stock
    {
        [PrimaryKey]
        [Column("id")]
        [NotNull]
        public int Id{ get; set; }
        [Column("name")]
        [NotNull]
        public string Name { get; set; } = "";
    }

としますが、複数の場合は

    [Table("stock")]
    public class Stock
    {
        [Indexed(Name = "INDEX01", Order = 1, Unique = true)]
        [Column("id")]
        [NotNull]
        public int Id{ get; set; }
        [Indexed(Name = "INDEX01", Order = 2, Unique = true)]
        [Column("name")]
        [NotNull]
        public string Name { get; set; } = "";
    }

のようにするそうです。

参考にしたサイトはこちら。

xamarin - C# SQLite-net define multi column unique - Stack Overflow