多列上的SQLite ORM主键
本文关键字:ORM 主键 SQLite | 更新日期: 2023-09-27 18:26:11
在SQLite中为多个列指定主键的语法是什么?
我正在使用Xamarin在C#中开发一个应用程序,并希望使用SQLite ORM在多个列上使用带有主键的表。
TableObject类定义一个表。我想确保ProductID和RetailerID的组合是唯一的。为了实现这一点,我想将列的组合作为主键。
我试过以下几种:
class TableObject
{
[PrimaryKey]
public int ProductID { get; set; }
[PrimaryKey]
public int RetailerID { get; set; }
public decimal Price { get; set; }
}
该表是这样创建的:
database.CreateTable<Cache>();
但我得到了以下例外:
SQLite.Net.SQLiteException:表"TableObject"有多个主键
在"默认"SQLite中,这可以使用:来完成
CREATE TABLE something (column1, column2, column3, PRIMARY KEY (column1, column2));
但是,如何使用SQLite ORM实现这一点呢?
这是不受支持的,您可以在这里阅读:https://forums.xamarin.com/discussion/14769/how-do-we-create-a-composite-primary-key-using-sqlite-net-orm
有些人扩展了SQLite PCL以启用一些附加功能https://github.com/softlion/SQLite.Net-PCL