我有以下课程:
Class1.cs:
[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; }
}
然后是我的 CustomObject 类:
[JsonObject(MemberSerialization.OptIn)]
public class CustomObject
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
[ForeignKey(typeof(Class1))]
public string Class1Key{ get; set; }
[JsonProperty("description")]
public string Description { get; set; }
[JsonProperty("value")]
public string Value { get; set; }
}
基本上我想要完成的是拥有一个包含这些自定义对象的映射的表。 SQLite-Net 扩展是否支持这一点?最新版本的 MVVMCross SQLite 社区包支持组合键方面。当我尝试将上述数据结构保存到我的数据库时,它会保存除我的 CustomObjects 之外的所有内容......这些最终都为空。如果您需要更多信息来了解我想要实现的目标,请告诉我!
首先,感谢您对 MvvmCross SQLite 社区插件的贡献。
遗憾的是,目前 SQLite-Net 扩展中不支持复合键,只有 SQLite-Net 的 MvvmCross 实现支持多个主键,并且这是最近的更改。
我将看看支持它所需的更改,但这需要一些时间。 SQLite-Net 扩展是建立在主键唯一的假设之上的,因此每个关系的外键也是唯一的。这种调整需要对架构和 API 进行一些深入的改变。
我正在考虑这样的事情,以避免当前工作的公共 API 发生变化:
[CompositeForeignKey(typeof(Class1), "key1", "key2", "key3"]
public Tuple<int, int, int> Class1Key { get; set; }
我创建了一个新问题在项目中跟踪状态。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)