private void AddFieldLookup(SiteColumn column, SPList listEdit)
{
var targetList =
Web.GetList(SPUrlUtility.CombineUrl(Web.Url, string.Concat("/lists/", column.TargetListInternalName)));
listEdit.Fields.AddLookup(column.Name, targetList.ID, column.Required);
var lookup = (SPFieldLookup)listEdit.Fields.GetField(column.Name);
lookup.LookupField =
targetList.Fields[
targetList.Fields.GetFieldByInternalName(column.TargetListFieldInternalName).Id]
.InternalName;
lookup.Update();
foreach (var fieldAdditional in column.FieldAdditional)
{
var depLookUp = listEdit.Fields.AddDependentLookup(fieldAdditional, lookup.Id);
var fieldDepLookup = (SPFieldLookup)listEdit.Fields.GetFieldByInternalName(depLookUp);
fieldDepLookup.LookupWebId = Web.ParentWeb.ID;
fieldDepLookup.LookupField =
targetList.Fields[targetList.Fields.GetFieldByInternalName(fieldAdditional).Id]
.InternalName;
fieldDepLookup.Update();
}
}