2010-09-05 3 views
9

He creado un archivo dbml en mi proyecto y luego he arrastrado dos tablas de una base de datos al diseñador. Estas son las tablas para las líneas de orden y encabezado, y las líneas de orden tienen una clave externa para ordenar el encabezado para que sea una relación de uno a muchos.Problema con la generación de asociación dentro del archivo dbml para LINQ to SQL

Tan pronto como las dos tablas se arrastren al diseñador, aparece la flecha de asociación y todo se ve correctamente. En las propiedades de la asociación, Child Property se establece en True, Access es público, el modo de herencia es (ninguno), Name es OrderLines (originalmente taOrderLines, pero editado por mí para llamarse OrderLines.

El problema es que no OrderLines se crea la propiedad. comprobé manualmente en el archivo cs generada también, y ni la palabra OrderLines o Asociación se encuentra allí.

¿Qué estoy haciendo mal aquí?

+0

Tuve este problema dos veces y de alguna manera no pude encontrar esta pregunta cuando buscaba una solución (al menos no al principio). El texto de la pregunta en sí está bien, pero el nombre de la pregunta es bastante amplio, lo que hace difícil imaginar que esta es la pregunta correcta. Como resultado, terminé encontrando la pregunta solo mientras trataba de escribir la mía (supongo que la búsqueda basada en texto hizo bien su trabajo). La pregunta no formulada que escribí se tituló algo así como "La tabla asociada no es accesible desde el modelo". – jahu

Respuesta

22

Asegúrese de que cada clase tiene una clave principal.


Si sus objetos no tienen una propiedad clave principal en el archivo dbml, el seguimiento de objetos LinqToSql no puede ver esos objetos y no se generarán propiedades relacionales.

+0

Ese fue en realidad el problema. Ni siquiera consideré que la base de datos con la que trabajaba no tenía configuradas las claves principales adecuadas. La tabla OrderLines no tenía clave principal. Cuando se creó la clave primaria, funcionó como se esperaba. –