メタデータからモデルを作成する簡単なツールを作成しようとしています。テーブルと列の作成には成功しましたが、モデルでは関係を作成できません。 ToTableプロパティとToTableプロパティをリレーションシップオブジェクトに追加しようとすると、これらのプロパティが読み取り専用であり、変更できないというエラーが発生しました。互換性レベル1200の表形式モデルプログラミングを使用してSSAS 2016でリレーションシップを作成できません
以下は、関係を作成するために使用しているサンプルコードです。
public void AddRelationshipsToModel()
{
OleDbDataReader reader = null;
try
{
OleDbConnection connection = new OleDbConnection();
connection.ConnectionString = metadataConnInfo.ConnectionString;
connection.Open();
OleDbCommand command = connection.CreateCommand();
command.CommandText = "select source_parent_table_name,source_parent_column_name, source_child_table_name,source_child_column_name from HX_VIEWS_RMS.BI_TABULAR_RELATIONSHIPS where MODEL_NAME='"+database.Model.Name +"'";
reader = command.ExecuteReader();
while(reader.Read())
{
string _toTable = srcAndTabularTableMap[reader.GetValue(0).ToString().Trim()];
string _toColumn = srcTableAndTabularColMap[reader.GetValue(0).ToString().Trim()][ reader.GetValue(1).ToString().Trim()];
string _fromTable = srcAndTabularTableMap[reader.GetValue(2).ToString().Trim()];
string _fromColumn = srcTableAndTabularColMap[reader.GetValue(2).ToString().Trim()][reader.GetValue(3).ToString().Trim()];
Table fromTable = Database.Model.Tables[_fromTable];
DataColumn fromColumn = (DataColumn)fromTable.Columns[_fromColumn];
Table toTable = Database.Model.Tables[_toTable];
DataColumn toColumn = (DataColumn)fromTable.Columns[_toColumn];
SingleColumnRelationship relationship = new SingleColumnRelationship();
relationship.FromTable = fromTable;
relationship.FromColumn = fromColumn;
relationship.ToTable = toTable;
relationship.ToColumn = toColumn;
//database.Model.Relationships.Add(new SingleColumnRelationship() { FromColumn = fromColumn ,ToColumn =toColumn});
}
connection.Close();
}
catch(Exception ex)
{
logger.Error(ex.Message);
}
}