From 31b767bf09cbfb6597d41c38c1f06029120836c9 Mon Sep 17 00:00:00 2001 From: none Date: Tue, 2 May 2023 12:44:17 +0200 Subject: [PATCH] better foreign keys --- at/fos/ermodel/gui/C4.java | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/at/fos/ermodel/gui/C4.java b/at/fos/ermodel/gui/C4.java index 69f5af3..d0a09db 100644 --- a/at/fos/ermodel/gui/C4.java +++ b/at/fos/ermodel/gui/C4.java @@ -521,22 +521,34 @@ public class C4 { .append(column.isUnique()?"[Index(\""+column.getColumnName()+"Index\", IsUnique = true)]\n"+addChars():"") .append(column.isAutoincrement()?"[DatabaseGenerated(DatabaseGeneratedOption.Identity)]\n"+addChars():""); if(column.getReferencesTo() != null) { - sqlScript.append("[ForeignKey(\"").append(shortname(table.getTablename())).append(shortcolumnname).append("-").append(shortname(column.getReferencesTo().tablename())).append(shortname(column.getReferencesTo().columnname())).append("\")]\n").append(addChars()); + //sqlScript.append("[ForeignKey(\"").append(shortname(table.getTablename())).append(shortcolumnname).append("-").append(shortname(column.getReferencesTo().tablename())).append(shortname(column.getReferencesTo().columnname())).append("\")]\n").append(addChars()); //[ForeignKey("Co_Department")] //[InverseProperty("De_Courses")] } - sqlScript.append("public ").append(sqltoCSType(column.getDatatype())) + sqlScript.append("public ") + .append(sqltoCSType(column.getDatatype())) .append(" ") + .append(column.getReferencesTo()!=null?shortname(column.getReferencesTo().tablename()):"") .append(shortcolumnname) .append(" { get; ") .append(column.isKey()?"private ": "") .append("set; }\n"); + if(column.getReferencesTo() != null) { + sqlScript.append(addChars()).append("public ").append(shortname(column.getReferencesTo().tablename())).append(" ").append(shortname(column.getReferencesTo().tablename())).append(" { get; set; }\n"); + + constructorbuilder.append(shortname(column.getReferencesTo().tablename())) + .append(" ").append(shortname(column.getReferencesTo().tablename())).append(", "); + + innerconstructorbuilder.append(addChars()).append(addChars()).append("this.").append(shortname(column.getReferencesTo().tablename())).append("=").append(shortname(column.getReferencesTo().tablename())).append(";\n"); + continue; + } + if(column.isKey())continue; - constructorbuilder.append(sqltoCSType(column.getDatatype())) + constructorbuilder.append(column.getReferencesTo()==null?sqltoCSType(column.getDatatype()):shortname(column.getReferencesTo().tablename())) .append(" ").append(shortcolumnname).append(", "); innerconstructorbuilder.append(addChars()).append(addChars()).append("this.").append(shortcolumnname).append("=").append(shortcolumnname).append(";\n");