コード例 #1
0
        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();
        }