Я пытаюсь сделать простое соединение с Simple.Data, но не могу заставить его работать.Я уверен, что что-то упустил, но я не понимаю ...
SQL:
CREATE TABLE TestA
(
ID INTEGER PRIMARY KEY,
Txt TEXT
);
CREATE TABLE TestB
(
ID INTEGER PRIMARY KEY,
Aref INTEGER,
Txt TEXT,
FOREIGN KEY(Aref) REFERENCES TestA(ID)
);
INSERT INTO TestA
VALUES (1, 'This is Test A!');
INSERT INTO TestB
VALUES (1, 1, 'This is TestB!');
C #:
db.TestB.Find(db.TestB.Aref = db.TestA.ID);
Если язапустите код, я получу исключение RuntimeBinderException: «Simple.Data.ObjectReference» не содержит определения для «Aref».
Я использую Simple.Data.Core / Ado v0.12.2.2 иSimple.Data.Sqlite v0.12.2.4
Я уже проверил Документы , но не вижу своей ошибки.Что я делаю не так?
Редактировать: Я также попробовал стиль индекса:
db["TestB"].Find(db["TestB"]["TestA"]["ID"] == db["TestB"]["Aref"]);
Сгенерированный SQL выглядит так:
select [TestB].* from [TestB] JOIN [TestA] ON ([TestA].[Aref] = [TestB].[ID]) where [TestA].[ID] = [TestB].[Aref]
Кажется, что таблицы в части ON инвертированы, на самом деле это должно быть похоже на часть WHERE ...