Look Up columns in SharePoint does not show the mapping if we save the list as a template

PROBLEM:

Look Up columns in SharePoint does not show the mapping if we save the list as a template and then create new list using this template which already has the lookup column definition

RESOLUTION:

Provided the explanation that when we save the lookup column with the list template , it stores the GUID as a reference of the other list and when we try creating a new list using that template , look column mapping fails because it does not find that GUID on the site. Possible workaround in our scenario was to re-map the columns after creating a list. Provided the sample code snippet to just giving an idea on creating look up columns programmatically.


SPSite objSite = new SPSite( "Site URL" ); 
// or we can do the SPControl.Getcontext() also

SPWeb objWeb = objSite.OpenWeb();

foreach(SPList objList in objWeb.Lists )
{
if(objList.Title ==txtLstFrom.Text.Trim())
{
string fieldDef = "<Field Type=\"Lookup\" List=\"{"+objWeb.Lists[txtLstTo.Text].ID+ "}\" ShowField=\"Title\" DisplayName=\"Look Me\" Name=\"LookMe\" /> ";

objList.Fields.AddFieldAsXml(fieldDef);
objList.Update();
}
}
Next Recommended Reading Saving C# List Into Text File