我想使用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”来自数据库中的Tables集合,数据库来自服务器实例中的数据库集合。我有条件逆转,因为我想在一个不存在的地方明显添加一个关系所以我正在寻找没有FK。
但是,我也有DataRelation系列。我可以添加一个FK,这将是关系吗?或者我应该添加FK和datarelation对象吗?
由于
答案 0 :(得分:1)
首先,为了清楚(希望你已经知道这一点),这段代码不会在数据库中创建任何内容......你所影响的只是ADO.Net DataSet中表之间的结构和关系object,它只存在于运行此代码的进程空间的内存中。
但话说回来,添加外键只是建立一个约束。这意味着它可以防止将新记录添加到该dataTable中,其中FK字段中的值不存在于另一个表中。这与添加关系不同。一个关系可以产生Parent-Child thingy(这里称之为多余的关系),允许其他.Net对象(如Grids等)以分层方式呈现数据。
所以是的,如果你想要两者都需要添加两者。