public TableClassModel(Modeler modeler) : this() { Namespace = modeler.Namespace; var entitySet = modeler.EntitySet; SchemaName = entitySet.Schema; TableName = entitySet.Name; var className = modeler.SqlToCodeName(TableName); ClassName = className; Fields = FieldModel.CreateFields(modeler).ToList(); var keys = modeler.EntityType.Key.PropertyRef.Select(pRef => new { pRef.Name, Field = Fields.FirstOrDefault(f => f.ColumnName == pRef.Name) }).ToList(); if (keys.Any(k => k.Field == null)) { throw new Exception($"Undeclared key reference: {string.Join(", ", keys.Where(k=>k.Field == null).Select(k=>k.Name))}"); } PrimaryKey = keys.Select(k => k.Field).ToList(); }