gpt4 book ai didi

c# - 带有 MonoTouch RELEASE 版本的 SQLite - 无法获得 PK?

转载 作者:行者123 更新时间:2023-11-30 12:11:23 24 4
gpt4 key购买 nike

我一直在使用 Monotouch 并为整个项目使用调试版本。我最近将其更改为发布版本以运行它,但它在启动时崩溃了。打开调试符号,我发现问题是 SQLite 抛出了一个(伪造的?)异常:“无法更新 RealConfigData 它没有 PK!”

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 就好了,但不能用于首先......然后它找不到该领域的 setter/getter ......这太疯狂了。

并且这段代码在运行调试时工作得很好。

这里到底有什么问题?

我准备发布我的 iPhone 应用程序,但 SQLite 在最后一刻对我不利。帮助!

==== 这是一个错误陈述:

更新: 我的另一个没有子类的类可以正常工作!所以它与父/子关系有关。

这不是真的,那个类的异常被吃掉了。

最佳答案

想通了...

找到这个:http://forums.xamarin.com/discussion/276/reflection-on-type-in-dll-allways-returns-propertyinfo-canwritefalse

基本上,如果您希望对属性进行反射,您可以在 iOS Build 设置中关闭 Link All Assemblies。 (否则,它会删除所有 setter )

如果我没有偶然发现,这可能需要我很长时间才能弄清楚...... :-(

关于c# - 带有 MonoTouch RELEASE 版本的 SQLite - 无法获得 PK?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15653493/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com