【发布时间】:2013-03-27 07:11:54
【问题描述】:
我一直在使用 Monotouch 并为整个项目使用调试版本。我最近将它更改为发布版本来运行它,它在启动时崩溃了。打开调试符号我发现问题是 SQLite 抛出了一个(伪造的?)异常: “无法更新没有PK的RealConfigData!”
public class RealConfigData
{
[AutoIncrement, PrimaryKey]
public int Id { get; set; }
// .. Other fields
}
public class GameData
{
[AutoIncrement, PrimaryKey]
public int Id { get; set; }
public int Seed {get;set;}
// .. Other fields
}
当我尝试 .Insert() 数据库中 RealConfigData 没有 PK 的第一个时,我遇到了错误!然而,确实如此。
对于第二个,我得到“找不到'种子'的获取方法”
WTF,似乎在编译 RELEASE 时,元数据不存在,或者更准确地说,不可靠...似乎它找到了 2nd class 的 PK 就好了,但不能用于首先..然后它找不到该字段的吸气剂...这太疯狂了。
而且这段代码在运行调试时工作得很好。
这到底是怎么回事?
我已准备好发布我的 iPhone 应用程序,但 SQLite 在最后一刻对我不利。救命!
==== 这是一个错误的陈述:
更新: 我的另一个没有子类的类可以正常工作!所以它与父/子关系有关。
这不是真的,那个类的异常被吃掉了。
【问题讨论】:
-
很好奇,您对其进行了编辑以删除我的姓名/签名,并在最后删除了三个点...我说谢谢...这被认为是错误的吗?
-
是的,这是一个规则,通常是这样。 (但不是我)您是否尝试将
Id移动到RealConfigData而不是基类? -
是的,事实上,我完全删除了类层次结构。我注意到一个关于在 iOS 注册类中使用泛型的警告,并寄希望于导致随机崩溃的清理...没有运气。
标签: c# sqlite mono xamarin.ios