private IList <HasMany> DetermineHasManyRelationships(Table table) { var hasManyRelationships = new List <HasMany>(); var conn = new CUBRIDConnection(connectionStr); conn.Open(); try { using (conn) { var schema = new CUBRIDSchemaProvider(conn); DataTable dt = schema.GetForeignKeys(new[] { "%" }); for (var i = 0; i < dt.Rows.Count; i++) { if (dt.Rows[i]["PKTABLE_NAME"].ToString() == table.Name) { var newHasManyItem = new HasMany { Reference = dt.Rows[i]["FKTABLE_NAME"].ToString(), ConstraintName = dt.Rows[i]["FK_NAME"].ToString(), ReferenceColumn = dt.Rows[i]["FKCOLUMN_NAME"].ToString() }; hasManyRelationships.Add(newHasManyItem); } } } } finally { conn.Close(); } return(hasManyRelationships); }
private List <HasMany> DetermineHasManyRelationships(Table table) { var hasManyRelationships = new List <HasMany>(); var conn = new OleDbConnection(_connectionStr); conn.Open(); try { using (conn) { using (var command = new OleDbCommand()) { command.Connection = conn; command.CommandText = String.Format( @" SELECT pt.table_name PK_TABLE , t.Table_name FK_TABLE , fc.column_name FK_COLUMN_NAME , fk.role CONSTRAINT_NAME FROM SYSFOREIGNKEY fk INNER JOIN systable t ON t.table_id = fk.foreign_table_id INNER JOIN sysfkcol fcol ON fcol.foreign_table_id = fk.foreign_table_id AND fcol.foreign_key_id = fk.foreign_key_id INNER JOIN syscolumn fc ON fc.column_id = fcol.foreign_column_id AND fc.Table_id = fcol.foreign_table_id INNER JOIN systable pt ON pt.table_id = fk.primary_table_id WHERE pt.table_name = '{0}' ORDER BY 1, 2", table.Name); var reader = command.ExecuteReader(); while (reader.Read()) { var constraintName = reader["CONSTRAINT_NAME"].ToString(); var fkColumnName = reader["FK_COLUMN_NAME"].ToString(); var existing = hasManyRelationships.FirstOrDefault(hm => hm.ConstraintName == constraintName); if (existing == null) { var newHasManyItem = new HasMany { ConstraintName = constraintName, Reference = reader.GetString(1) }; newHasManyItem.AllReferenceColumns.Add(fkColumnName); hasManyRelationships.Add(newHasManyItem); } else { existing.AllReferenceColumns.Add(fkColumnName); } } } } } finally { conn.Close(); } return(hasManyRelationships); }
public CodeSnippetStatement Create(HasMany hasMany) { var hasManySnippet = string.Format("HasMany(x => x.{0}).WithMany(x => x.{1})", Formatter.FormatPlural(hasMany.Reference), pascalCaseTextFormatter.FormatSingular(hasMany.PKTableName)); var keySnippet = string.Format(".Map(m => {{m.ToTable(\"{0}\"); m.MapLeftKey(\"{1}\"); m.MapRightKey(\"{2}\");}})", hasMany.Reference, hasMany.ReferenceColumn, hasMany.ReferenceColumn); return(new CodeSnippetStatement(string.Format(AbstractGenerator.TABS + "{0}{1};", hasManySnippet, keySnippet))); }
private static IEnumerable <IConvention> GetConventions() { yield return(Table.Is(x => x.EntityType.Name)); // TODO: TBD: does not seem to be taking? having to specify Id column? yield return(Id.Always(x => x.Column("Id"))); yield return(HasMany.Always(x => x.Cascade.AllDeleteOrphan())); yield return(HasMany.Always(x => x.LazyLoad())); yield return(HasMany.Always(x => x.Inverse())); yield return(HasMany.Always(x => x.AsBag())); yield return(Reference.Always(x => x.LazyLoad())); yield return(Reference.Always(x => x.Cascade.All())); //// TODO: TBD: not strong enough: //yield return ForeignKey.EndsWith("Id"); // TODO: TBD: does not seem to be taking? having to specify each reference column name? yield return(ForeignKey.Format((p, t) => (p == null ? t.Name : p.Name) + "Id")); // TODO: ditto Id Alwyas Id? yield return(PrimaryKey.Name.Is(x => "Id")); yield return(DefaultCascade.All()); yield return(DefaultLazy.Always()); }
public string Bag(HasMany hasMany, ITextFormatter formatter) { var builder = new StringBuilder(); builder.Append("\t\t\tBag<" + formatter.FormatSingular(hasMany.Reference) + ">(x => x." + formatter.FormatPlural(hasMany.Reference) + ", colmap => { colmap.Key(x => x.Column(\"" + hasMany.ReferenceColumn + "\")); }, map => { map.OneToMany(x => x.Class(typeof(" + formatter.FormatSingular(hasMany.Reference) + "))); });"); return(builder.ToString()); }
public rUser(string name, int age) { Articles = new HasMany <rArticle>(this, null, "Reader_Id"); this.Name = name; this.Age = age; m_InitUpdateColumns(); }
public rUser(long id, string name, int age) { this.Id = id; Articles = new HasMany <rArticle>(this, null, "Reader_Id"); this.Name = name; this.Age = age; this.InitLoadedColumns(); }
public CodeSnippetStatement Create(HasMany hasMany) { var hasManySnippet = $"HasMany(x => x.{Formatter.FormatPlural(hasMany.Reference)})"; var keySnippet = hasMany.AllReferenceColumns.Count == 1 ? $".KeyColumn(\"{hasMany.ReferenceColumn}\")" : $".KeyColumns({hasMany.AllReferenceColumns.Aggregate("new string[] { ", (a, b) => a + "\"" + b + "\", ", c => c.Substring(0, c.Length - 2) + " }")})"; return(new CodeSnippetStatement(string.Format(AbstractGenerator.TABS + "{0}{1};", hasManySnippet, keySnippet))); }
public void InitializeWithDefaults(Object Tag) { Set = new HasMany<DummyModel>(); if (Tag is object[]) { object[] options = (object[])Tag; Name = (String)options[0]; Value = (Int32)options[1]; } }
// http://blog.sqlauthority.com/2006/11/01/sql-server-query-to-display-foreign-key-relationships-and-name-of-the-constraint-for-each-table-in-database/ private IList <HasMany> DetermineHasManyRelationships(Table table) { var hasManyRelationships = new List <HasMany>(); var conn = new SqlConnection(connectionStr); conn.Open(); try { using (conn) { using (var command = new SqlCommand()) { command.Connection = conn; command.CommandText = String.Format( @" SELECT DISTINCT PK_TABLE = b.TABLE_NAME, FK_TABLE = c.TABLE_NAME, FK_COLUMN_NAME = d.COLUMN_NAME, CONSTRAINT_NAME = a.CONSTRAINT_NAME FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS a JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS b ON a.CONSTRAINT_SCHEMA = b.CONSTRAINT_SCHEMA AND a.UNIQUE_CONSTRAINT_NAME = b.CONSTRAINT_NAME JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS c ON a.CONSTRAINT_SCHEMA = c.CONSTRAINT_SCHEMA AND a.CONSTRAINT_NAME = c.CONSTRAINT_NAME JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE d on a.CONSTRAINT_NAME = d.CONSTRAINT_NAME WHERE b.TABLE_NAME = '{0}' ORDER BY 1,2" , table.Name.Replace("'", "''")); SqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { var constraintName = reader["CONSTRAINT_NAME"].ToString(); var fkColumnName = reader["FK_COLUMN_NAME"].ToString(); var pkTableName = reader["PK_TABLE"].ToString(); var existing = hasManyRelationships.FirstOrDefault(hm => hm.ConstraintName == constraintName); if (existing == null) { var newHasManyItem = new HasMany { ConstraintName = constraintName, Reference = reader.GetString(1), PKTableName = pkTableName }; newHasManyItem.AllReferenceColumns.Add(fkColumnName); hasManyRelationships.Add(newHasManyItem); } else { existing.AllReferenceColumns.Add(fkColumnName); } } } } } finally { conn.Close(); } return(hasManyRelationships); }
public Company() { Users = new HasMany <User>(this, "Id", "Company_Id"); Departments = new HasMany <Department>(this, "Id", "Company_Id"); Employees = new HasMany <Employee>(this, "Id", "Company_Id"); Resources = new HasMany <Resource>(this, "Id", "Company_Id"); Trades = new HasMany <Trade>(this, "Id", "Company_Id"); Customers = new HasMany <Customer>(this, "Id", "Company_Id"); Products = new HasMany <Product>(this, "Id", "Company_Id"); }
public string Bag(HasMany hasMany, ITextFormatter formatter) { var builder = new StringBuilder(); if (_language == Language.CSharp) { builder.AppendFormat( "\t\t\tBag(x => x.{0}, colmap => {{ colmap.Key(x => x.Column(\"{1}\")); colmap.Inverse(true); }}, map => {{ map.OneToMany(); }});", formatter.FormatPlural(hasMany.Reference), hasMany.ReferenceColumn); } else if (_language == Language.VB) { builder.AppendFormat( "\t\t\tBag(Function(x) x.{0}, Sub(colmap) colmap.Key(Function(x) x.Column(\"{1}\")), Sub(map) map.OneToMany())", formatter.FormatPlural(hasMany.Reference), hasMany.ReferenceColumn); } return(builder.ToString()); }
public IList <HasMany> DetermineHasManyRelationships(Table table) { List <FbForeignKey> foreignKeys = null; var hasManyRelationships = new List <HasMany>(); using (var conn = new FbConnection(connectionStr)) { conn.Open(); foreignKeys = GetForeignKeyColumns(conn, "", table.Name); } if (foreignKeys == null) { return(hasManyRelationships); } foreach (var fk in foreignKeys) { var existing = hasManyRelationships.FirstOrDefault(hm => hm.ConstraintName == fk.ConstraintName); if (existing == null) { var newHasManyItem = new HasMany { ConstraintName = fk.ConstraintName, Reference = fk.TableName }; newHasManyItem.AllReferenceColumns.Add(fk.ColumnName); hasManyRelationships.Add(newHasManyItem); } else { existing.AllReferenceColumns.Add(fk.ColumnName); } } return(hasManyRelationships); }
public User() { Articles = new HasMany <Article>(this, "Id", "User_Id"); }
public CategorySqlite() { Books = new HasMany <BookSqlite>(this, "Id", "Category_Id"); }
public OverPeople() { Pcs = new HasMany <OverPc>(this, "Id", "OverPeople_Id"); }
public ArticleMore() { Bms = new HasMany <BelongsMore> (this, "Id", "Article_Id"); }
public ReaderMore() { Bms = new HasMany <BelongsMore> (this, "Id", "Reader_Id"); }
public For_TableName2() { Tables = new HasMany <ForTableName>(this, "Id", "For_TableName2_Id"); }
public rUser() { Articles = new HasMany <rArticle>(this, null, "Reader_Id"); }
public Author() : base() { Associations = new Association<AssocKey, AssocValue>(); ValueAssociations = new AssociationWithValue<AssocKey, AssocValue>(); Books = new HasMany<Book>(); }
public Person() { Computers = new HasMany <Computer>(this, "Id", "Person_Id"); }
public Trade() { Company = new BelongsTo <Company, long>(this, "Company_Id"); Orders = new HasMany <Order>(this, "Id", "Trade_Id"); }
IList <HasMany> DetermineHasManyRelationships(Table table) { var hasManys = new List <HasMany>(); using (var sqlCon = new DB2Connection(_connectionStr)) { try { sqlCon.Open(); using (DB2Command tableDetailsCommand = sqlCon.CreateCommand()) { tableDetailsCommand.CommandText = $@" select co.constrname, t.tabname, c.colno, c.colname, t2.tabname tabname2, c2.colno colno2, c2.colname colname2 from sysreferences r inner join sysconstraints co on co.constrid = r.constrid and co.constrtype = 'R' inner join systables t on t.tabid = co.tabid inner join sysindexes i on i.idxname = co.idxname inner join syscolumns c on c.tabid = co.tabid inner join sysconstraints co2 on co2.constrid = r.primary inner join systables t2 on t2.tabid = co2.tabid inner join sysindexes i2 on i2.idxname = co2.idxname inner join syscolumns c2 on c2.tabid = co2.tabid where ( (c.colno = i.part1 and c2.colno = i2.part1) or (c.colno = i.part2 and c2.colno = i2.part2) or (c.colno = i.part3 and c2.colno = i2.part3) or (c.colno = i.part4 and c2.colno = i2.part4) or (c.colno = i.part5 and c2.colno = i2.part5) or (c.colno = i.part6 and c2.colno = i2.part6) or (c.colno = i.part7 and c2.colno = i2.part7) or (c.colno = i.part8 and c2.colno = i2.part8) or (c.colno = i.part9 and c2.colno = i2.part9) or (c.colno = i.part10 and c2.colno = i2.part10) or (c.colno = i.part11 and c2.colno = i2.part11) or (c.colno = i.part12 and c2.colno = i2.part12) or (c.colno = i.part13 and c2.colno = i2.part13) or (c.colno = i.part14 and c2.colno = i2.part14) or (c.colno = i.part15 and c2.colno = i2.part15) or (c.colno = i.part16 and c2.colno = i2.part16) ) and t2.owner = '{table.Owner}' and t2.tabname = '{table.Name}' "; using (DB2DataReader reader = tableDetailsCommand.ExecuteReader(CommandBehavior.Default)) { HasMany hasMany = null; while (reader.Read()) { string constraintName = reader.GetString("constrname"); if (hasMany != null && hasMany.ConstraintName != constraintName) { hasManys.Add(hasMany); hasMany = null; } if (hasMany == null) { hasMany = new HasMany { ConstraintName = constraintName, Reference = reader.GetString("tabname2"), PKTableName = reader.GetString("tabname") }; } hasMany.AllReferenceColumns.Add(reader.GetString("colname")); } if (hasMany != null) { hasManys.Add(hasMany); } } } } catch { sqlCon.Close(); throw; } } return(hasManys); }
public RequiredPerson() { Pc = new HasMany <RequiredPc> (this, "Id", "RequiredPerson_Id"); }
public rUser() { Articles = new HasMany <rArticle>(this, null, "Reader_Id"); m_InitUpdateColumns(); }
public lCategory() { Books = new HasMany <lBook>(this, "Id", "Category_Id"); }
public CCC1() { Indeies = new HasMany <IndexTestClass>(this, "Id", "IndexTestClass_Id"); }
public AppGrupoUsr() { GrpMnu = new HasMany <AppGrupoUsrMnu> (this, "Id", "gru_id"); }
public ctmUser() { infos = new HasMany <ctmInfo>(this, "Id", "user_id"); }
public Department() { Company = new BelongsTo <Company, long>(this, "Company_Id"); Employees = new HasMany <Employee>(this, "Id", "Department_Id"); Resources = new HasMany <Resource>(this, "Id", "Department_Id"); }
public ImpPeople1() { _pcs = new HasMany <ImpPCs1>(this, "Id DESC", "Person_Id"); m_InitUpdateColumns(); }