Pregunta

He estado luchando para conseguir DbMetal al procesamiento de base de datos SQLite. Finalmente aislado el problema. No permitirá una mesa para tener dos referencias de clave externa a la misma columna.

Por ejemplo, una base de datos SQLite con estas dos tablas se producirá un error:

CREATE TABLE Person
(
    Id INTEGER PRIMARY KEY,
    Name TEXT NOT NULL
);

CREATE TABLE Match
(
    Id INTEGER PRIMARY KEY,
    WinnerPersonId INTEGER NOT NULL REFERENCES Person(Id),
    LoserPersonId INTEGER NOT NULL REFERENCES Person(Id)
);

Me sale este error:

DbMetal: Secuencia contiene más de un elemento coincidente

Si me deshago de la segunda referencia de clave externa, no se produce ningún error.

Por lo tanto, esto funciona:

CREATE TABLE Match
(
    Id INTEGER PRIMARY KEY,
    WinnerPersonId INTEGER NOT NULL REFERENCES Person(Id),
    LoserPersonId INTEGER NOT NULL
);

Pero lo que realmente necesitan las dos columnas "persona" para hacer referencia a la tabla Person.

reporte de errores para esto, pero podría utilizar una solución en el ínterin. Algunas ideas?

¿Fue útil?

Solución

Sólo tenía el mismo problema y ha creado un parche. También he publicado que a su informe de error . Para otros, puede encontrar el parche aquí:. http://pastebin.com/VhNptMqp

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top