Объедините две сущности в одну, используя базовые данные - PullRequest
0 голосов
/ 17 декабря 2011

Это модель данных для моей основной базы данных.

Теперь мне нужно выбрать все объекты ICD9, как заболевания, так и процедуры. Я не могу настроить выборку для поиска двух объектов, так есть ли способ объединить их в один объект ICD9 вместо двух отдельных?

enter image description here

Обновленная модель:

enter image description here

Сообщение об ошибке:

Unresolved error Error Domain=NSCocoaErrorDomain Code=134100 "The operation couldn’t be completed. (Cocoa error 134100.)" UserInfo=0x12ed7300 {metadata=<CFBasicHash 0x12ed5d20 [0x2f6eb38]>{type = immutable dict, count = 7,
entries =>
    2 : <CFString 0x12ed45b0 [0x2f6eb38]>{contents = "NSStoreModelVersionIdentifiers"} = <CFArray 0x12ed4d80 [0x2f6eb38]>{type = immutable, count = 1, values = (
    0 : <CFString 0x2f69cd8 [0x2f6eb38]>{contents = ""}
)}
    4 : <CFString 0x12ed4740 [0x2f6eb38]>{contents = "NSPersistenceFrameworkVersion"} = <CFNumber 0x12ed4da0 [0x2f6eb38]>{value = +320, type = kCFNumberSInt64Type}
    6 : <CFString 0x12ed48d0 [0x2f6eb38]>{contents = "NSStoreModelVersionHashes"} = <CFBasicHash 0x12ed53c0 [0x2f6eb38]>{type = immutable dict, count = 5,
entries =>
    0 : <CFString 0x12ed4c10 [0x2f6eb38]>{contents = "CPT"} = <CFData 0x12f7ce50 [0x2f6eb38]>{length = 32, capacity = 32, bytes = 0xbadc4637a7c1885cd19a176755d1fecf ... 29f23ba15836dff2}
    1 : <CFString 0x12ed4f10 [0x2f6eb38]>{contents = "ICD9Disease"} = <CFData 0x12f7cea0 [0x2f6eb38]>{length = 32, capacity = 32, bytes = 0x7cf87b9141b2c154fda8fa973b11aba4 ... 471f47adf2a60a63}
    2 : <CFString 0x12ed50a0 [0x2f6eb38]>{contents = "ICD9Procedure"} = <CFData 0x12f7d040 [0x2f6eb38]>{length = 32, capacity = 32, bytes = 0x05909fa15f0da3d0d9a4329e31da816a ... fe44e8c0de14354b}
    3 : <CFString 0x12ed5230 [0x2f6eb38]>{contents = "MedicalCode"} = <CFData 0x12f7d090 [0x2f6eb38]>{length = 32, capacity = 32, bytes = 0x7d1d70878edb9c839f9586011ad1726f ... e7a60fcde779e490}
    6 : <CFString 0x12ed5250 [0x2f6eb38]>{contents = "HCPCS"} = <CFData 0x12f7d0e0 [0x2f6eb38]>{length = 32, capacity = 32, bytes = 0x9d052e1525b4357a1cd9b6c1d6481bbf ... 7ef40429b86137c0}
}

    7 : <CFString 0x1a16aa8 [0x2f6eb38]>{contents = "NSStoreUUID"} = <CFString 0x12ed3f70 [0x2f6eb38]>{contents = "EC3CEFE5-2414-431F-ABCE-C67DE6471874"}
    8 : <CFString 0x1a16948 [0x2f6eb38]>{contents = "NSStoreType"} = <CFString 0x1a16958 [0x2f6eb38]>{contents = "SQLite"}
    9 : <CFString 0x12ed4a60 [0x2f6eb38]>{contents = "NSStoreModelVersionHashesVersion"} = <CFNumber 0xb8283f0 [0x2f6eb38]>{value = +3, type = kCFNumberSInt32Type}
    10 : <CFString 0x12ed4bf0 [0x2f6eb38]>{contents = "_NSAutoVacuumLevel"} = <CFString 0x12ed5570 [0x2f6eb38]>{contents = "2"}
}
, reason=The model used to open the store is incompatible with the one used to create the store}, {
    metadata =     {
        NSPersistenceFrameworkVersion = 320;
        NSStoreModelVersionHashes =         {
            CPT = <badc4637 a7c1885c d19a1767 55d1fecf de75bb71 1198e89c 29f23ba1 5836dff2>;
            HCPCS = <9d052e15 25b4357a 1cd9b6c1 d6481bbf 3ee5bbef 7d67313a 7ef40429 b86137c0>;
            ICD9Disease = <7cf87b91 41b2c154 fda8fa97 3b11aba4 49984cd5 b8b4694e 471f47ad f2a60a63>;
            ICD9Procedure = <05909fa1 5f0da3d0 d9a4329e 31da816a 0f76d10e 54122f9c fe44e8c0 de14354b>;
            MedicalCode = <7d1d7087 8edb9c83 9f958601 1ad1726f 0ced7e49 2a139a20 e7a60fcd e779e490>;
        };
        NSStoreModelVersionHashesVersion = 3;
        NSStoreModelVersionIdentifiers =         (
            ""
        );
        NSStoreType = SQLite;
        NSStoreUUID = "EC3CEFE5-2414-431F-ABCE-C67DE6471874";
        "_NSAutoVacuumLevel" = 2;
    };
    reason = "The model used to open the store is incompatible with the one used to create the store";
}

Ответы [ 2 ]

2 голосов
/ 17 декабря 2011

Вы можете создать еще одну абстрактную сущность с именем ICD9, которая происходит от MedicalCode. Тогда ICD9Disease и ICD9Procedure будут конкретными подклассами. Просто переместите общие свойства до абстрактного ICD9 класса.

Теперь вы можете выполнить запрос на выборку для всех ICD9 сущностей и получить обратно оба субсубъекта.

0 голосов
/ 17 декабря 2011

Попробуйте удалить хранилище данных, созданное под старой моделью.Скорее всего, это будет в вашей библиотеке каталог для вашего приложения.Когда вы снова запустите программу, она должна восстановить хранилище без ошибок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...