2

我想这与我对 MonoTouch 的 Vici CS ORM 的工作原理缺乏了解有关。在为 Monotouch 使用 Vici CS 时,当主键未设置为 INTEGER AUTOINCREMENT 时,实例化一个 DB 映射对象需要很长时间(几十秒)。当 PK 为 INTEGER AUTOINCREMENT 时,执行顺利。

我的 DB 映射类如下所示:

[MapTo("Employees")]
public class Employee : CSObject<Employee, int>
{
    public Employee () { }

    public int EmployeeId { get { return (int)GetField ("EmployeeId "); } }
    public string Name{ get { return (string)GetField ("Name"); } set { SetField ("Name",value); } }
    public string Address{ get { return (string)GetField ("Address"); } set { SetField ("Address",value); } }
}

以及数据库创建脚本:

CREATE TABLE Employees (EmployeeId INTEGER PRIMARY KEY AUTOINCREMENT, Name TEXT, Address TEXT)");

删除表创建脚本中的 AUTOINCREMENT 关键字会减慢 Employee 对象实例化的速度。不删除它工作正常。

有没有推荐的方法避免这种约束?例如,是否可以将 TEXT 字段作为主键,然后可以包含一个 guid?

4

0 回答 0