Tengo dos tablas que ya se han creado. Document
y DocumentStyle
. Tienen una relación de uno a uno a través de la columna DocumentID
. Sin embargo, se llama Id
en la tabla Document
y DocumentId
en la tabla DocumentStyle
.Relación uno a uno, nombre de columna de clave diferente, Marco de entidad, primer enfoque de código
Algo como esto
> Document DocumentStyle
> |----------| |----------------|
> |Id - Key |<------>|DocumentId- key |
> |Name-VChar| |Color -VChar|
> |Desc-VChar| |Font VChar |
> |----------| |----------------|
Estoy recibiendo el siguiente error en VS
El ForeignKeyAttribute en la propiedad 'documentstyle' en el tipo 'KII.Models.Document' no es válida . El nombre de la clave externa 'DocumentId' era no encontrado en el tipo dependiente 'KII.Models.Document'. El valor Name debe ser una lista separada por comas de nombres de propiedades de claves foráneas.
Esto es parte del código de la clase del modelo de documento
[ForeignKey("DocumentId")] public
DocumentStyle DocumentStyle { get;set; }
EDIT:
Este es el código de mis clases.
public class Document { [Key] public int ID { get; set; } public string Name { get; set; } public int FundId { get; set; } public int ClientId { get; set; } [ForeignKey("FundId")] public Fund Fund { get; set; } [ForeignKey("ClientId")] public Client Client { get; set; } //public ImageWrapper Logo { get; set; } [ForeignKey("ID")] public DocumentStyle DocumentStyle { get; set; } public Document() { } public Document(DocumentStyle documentStyle) { DocumentStyle = documentStyle; } } public class DocumentStyle { public DocumentStyle() { } [Key] [DisplayName("Document ID")] public int DocumentId { get; set; } [ForeignKey("DocumentId")] public Document Document { get; set; } [DisplayName("Title Foreground Color")] public string TitleForegroundColor { get; set; } [DisplayName("Title Background Color")] public string TitleBackgroundColor { get; set; } [DisplayName("Title Font Family")] public string TitleFontFamily { get; set; } [DisplayName("Title Font Size")] public string TitleFontSize { get; set; } [DisplayName("Title Font Style")] public string TitleFontStyle { get; set; } [DisplayName("Title Font Weight")] public string TitleFontWeight { get; set; } [DisplayName("Title Text Decoration")] public string TitleTextDecoration { get; set; } [DisplayName("Section Title Foreground Color")] public string SectionTitleForegroundColor { get; set; } [DisplayName("Section Title Background Color")] public string SectionTitleBackgroundColor { get; set; } [DisplayName("Section Title Font Family")] public string SectionTitleFontFamily { get; set; } [DisplayName("Section Title Font Size")] public string SectionTitleFontSize { get; set; } [DisplayName("Section Title Font Styled")] public string SectionTitleFontStyle { get; set; } [DisplayName("Section Title Font Weight")] public string SectionTitleFontWeight { get; set; } [DisplayName("Section Title Text Decoration")] public string SectionTitleTextDecoration { get; set; } [DisplayName("Paragraph Foreground Color")] public string ParagraphForegroundColor { get; set; } [DisplayName("Paragraph Background Color")] public string ParagraphBackgroundColor { get; set; } [DisplayName("Paragraph Font Family")] public string ParagraphFontFamily { get; set; } [DisplayName("Paragraph Font Size")] public string ParagraphFontSize { get; set; } [DisplayName("Paragraph Font Style")] public string ParagraphFontStyle { get; set; } [DisplayName("Paragraph Font Weight")] public string ParagraphFontWeight { get; set; } [DisplayName("Paragraph Text Decoration")] public string ParagraphTextDecoration { get; set; } [DisplayName("Logo")] public byte[] Logo { get; set; } }
Grande. Me equivoqué. Lo hizo el truco. Pasé ese error. Sin embargo, ahora tengo este. "La multiplicidad no es válida en Role 'Document_DocumentStyle_Source' en la relación 'Document_DocumentStyle'. Debido a que el rol dependiente se refiere a las propiedades clave, el límite superior de la multiplicidad del rol dependiente debe ser 1" – Omar
Muestre sus entidades o mapeo fluido. Parece que está intentando definir un lado opcional cuando no es posible. –
El atributo ForeignKey debe usarse solo en un lado de la relación donde se define la clave foránea. Supongo que 'Document' es principal en su modelo, así que elimine el atributo de la propiedad' DocumentStyle'. –