C# 如何使用带有复合键的SQLite网络扩展
我有以下课程: Class1.cs:C# 如何使用带有复合键的SQLite网络扩展,c#,sqlite,xamarin.ios,mvvmcross,sqlite-net-extensions,C#,Sqlite,Xamarin.ios,Mvvmcross,Sqlite Net Extensions,我有以下课程: Class1.cs: [JsonObject(MemberSerialization.OptIn)] public class Class1 { [PrimaryKey] [JsonProperty("key1")] public string Key1 { get; set; } [PrimaryKey] [JsonProperty("key2")] public string Key2 { get; set; } [
[JsonObject(MemberSerialization.OptIn)]
public class Class1
{
[PrimaryKey]
[JsonProperty("key1")]
public string Key1 { get; set; }
[PrimaryKey]
[JsonProperty("key2")]
public string Key2 { get; set; }
[PrimaryKey]
[JsonProperty("key3")]
public string Key3 { get; set; }
[JsonProperty("normalStuff")]
public string NormalStuff{ get; set; }
[OneToMany(CascadeOperations = CascadeOperation.All)]
[JsonProperty("customObjectList")]
public List<CustomObject> CustomObjects { get; set; }
}
基本上,我要做的是创建一个表,其中包含到这些自定义对象的映射。SQLite网络扩展是否支持这一点?最新版本的MVVMCross SQLite社区包支持复合密钥特性。当我尝试将上述数据结构保存到我的数据库时,它会保存除CustomObjects之外的所有内容。。。这些结果都是空的。如果你需要更多的信息来了解我的目标,请告诉我 首先,感谢您对MvvmCross SQLite社区插件的贡献 遗憾的是,目前在SQLite网络扩展中不支持复合键,只有SQLite网络的MvvmCross实现支持多个主键,这是最近的一个变化 我将查看支持它所需的更改,但这需要一些时间。SQLite Net扩展是建立在主键是唯一的假设之上的,因此每个关系的外键也是唯一的。这种适应需要对体系结构和API进行一些深刻的更改 我这样想是为了避免对当前正在运行的公共API进行更改:
[CompositeForeignKey(typeof(Class1), "key1", "key2", "key3"]
public Tuple<int, int, int> Class1Key { get; set; }
[组合键(类别1)、“键1”、“键2”、“键3”]
公共元组ClassKey{get;set;}
我在项目中创建了一个API来跟踪状态。没问题,谢谢你的精彩扩展项目!我认为API会很好地工作。目前,我认为我可以删除组合键,只需使用多列选择正确的记录。我假设它会更慢,但任何时候都不应该有超过几百条记录,所以我想我可以侥幸逃脱。我会继续监控你项目的进度!
[CompositeForeignKey(typeof(Class1), "key1", "key2", "key3"]
public Tuple<int, int, int> Class1Key { get; set; }