代码之家  ›  专栏  ›  技术社区  ›  GurdeepS

通过C在SQL Server中创建表关系#

  •  0
  • GurdeepS  · 技术社区  · 15 年前

    我想使用C_在我的SQL Server数据库中创建关系。

    我有这个代码:

       foreach (ForeignKey fk in table.ForeignKeys)
                    {
                        if (!table.ForeignKeys.Contains("ProductMaterial"))
                    }
    
                    table.ForeignKeys.Add(
                         new ForeignKey(
                            new Table(database, 
                                      "ProductMaterial"), 
                                      "ProductMaterial" ));
                    DataRelation relation = new DataRelation(
                            "ProductMaterial", new DataColumn(), )
    

    “table”来自数据库中的表集合,数据库来自服务器实例中的数据库集合。我有条件反转,因为我想添加一个明显的关系,其中一个不存在,所以我在寻找一个FK的缺席。

    但是,我也有数据关系行。我可以添加一个FK,这就是关系吗?还是应该同时添加FK和DataRelation对象?

    谢谢

    1 回复  |  直到 15 年前
        1
  •  1
  •   Charles Bretana    15 年前

    首先,为了清楚起见(希望您已经知道这一点),此代码不会在数据库中创建任何内容…您所影响的只是ADO.NET数据集对象中表之间的结构和关系,这些表只存在于运行此代码的进程空间的内存中。

    但是说了这句话,加上外键就建立了一个 约束 . 这意味着它可以防止将新记录添加到该数据表中,其中FK字段中的值在另一个表中不存在。这与添加关系不同。关系建立父-子thingy(这里称为多余的关系),它允许网格等其他.NET对象以分层方式呈现数据。

    所以是的,如果你想要两个,你需要同时添加两个。