I first added a migration in visual studio and my code to call in migration is
namespace Tms.Entities.Migrations
{
using Scripts;
using System;
using System.Data.Entity.Migrations;
public partial class UpdateLocalisationForPortuguese : DbMigration
{
public override void Up()
{
AddColumn("dbo.Language", "LocalisationId", c => c.Guid());
CreateIndex("dbo.Language", "LocalisationId");
AddForeignKey("dbo.Language", "LocalisationId", "dbo.Localisation", "LocalisationId");
var script = ScriptHelper.LoadMigrationScript("201606220917003_UpdateLocalisationForPortuguese.sql");
Sql(script);
}
public override void Down()
{
DropForeignKey("dbo.Language", "LocalisationId", "dbo.Localisation");
DropIndex("dbo.Language", new[] { "LocalisationId" });
DropColumn("dbo.Language", "LocalisationId");
}
}
}
where I am calling a sql script. I have created the sql script and scripted all the queries I needed.
IF EXISTS (SELECT 1 FROM LANGUAGE WHERE LOCALISATIONID IS NULL AND CULTURENAME = 'aa-ET')
BEGIN
INSERT INTO LOCALISATION VALUES ('1505ba83-a51b-487e-9935-9b1007169136')
INSERT INTO LOCALISEDTEXT VALUES ('1505ba83-a51b-487e-9935-9b1007169136', 'pt-BR', '')
UPDATE LANGUAGE SET LOCALISATIONID = '1505ba83-a51b-487e-9935-9b1007169136' WHERE LOCALISATIONID IS NULL AND CULTURENAME = 'aa-ET'
END
IF EXISTS (SELECT 1 FROM LANGUAGE WHERE LOCALISATIONID IS NULL AND CULTURENAME = 'af-ZA')
BEGIN
INSERT INTO LOCALISATION VALUES ('7774ee36-ff12-438e-8f7c-77f76403b372')
INSERT INTO LOCALISEDTEXT VALUES ('7774ee36-ff12-438e-8f7c-77f76403b372', 'pt-BR', '')
UPDATE LANGUAGE SET LOCALISATIONID = '7774ee36-ff12-438e-8f7c-77f76403b372' WHERE LOCALISATIONID IS NULL AND CULTURENAME = 'af-ZA'
END
IF EXISTS (SELECT 1 FROM LANGUAGE WHERE LOCALISATIONID IS NULL AND CULTURENAME = 'sq-AL')
BEGIN
INSERT INTO LOCALISATION VALUES ('979f748e-cbba-40c6-94cf-469a1b4bb567')
INSERT INTO LOCALISEDTEXT VALUES ('979f748e-cbba-40c6-94cf-469a1b4bb567', 'pt-BR', '')
UPDATE LANGUAGE SET LOCALISATIONID = '979f748e-cbba-40c6-94cf-469a1b4bb567' WHERE LOCALISATIONID IS NULL AND CULTURENAME = 'sq-AL'
END
IF EXISTS (SELECT 1 FROM LANGUAGE WHERE LOCALISATIONID IS NULL AND CULTURENAME = 'am-ET')
BEGIN
INSERT INTO LOCALISATION VALUES ('f420a282-d9c0-4b35-b898-67941f52efc2')
INSERT INTO LOCALISEDTEXT VALUES ('f420a282-d9c0-4b35-b898-67941f52efc2', 'pt-BR', '')
UPDATE LANGUAGE SET LOCALISATIONID = 'f420a282-d9c0-4b35-b898-67941f52efc2' WHERE LOCALISATIONID IS NULL AND CULTURENAME = 'am-ET'
END
When type Update-Database in the package console, it is throwing an error that
Failed to load script 'Tms.Entities.Scripts.Migrations.201606220917003_UpdateLocalisationForPortuguese.sql'
The Scripthelper code is
public static class ScriptHelper
{
public static string LoadIndex(string fileName)
{
var manifestResourceName = "Tms.Entities.Scripts.Indexes." + fileName;
return LoadScript(manifestResourceName);
}
public static string LoadProcedure(string fileName)
{
var manifestResourceName = "Tms.Entities.Scripts.Procedures." + fileName;
return LoadScript(manifestResourceName);
}
public static string LoadMigrationScript(string fileName)
{
var manifestResourceName = "Tms.Entities.Scripts.Migrations." + fileName;
return LoadScript(manifestResourceName);
}
public static string LoadScript(string resourceName)
{
try
{
using (var scriptStream = typeof(ScriptHelper).Assembly.GetManifestResourceStream(resourceName))
using (var scriptReader = new StreamReader(scriptStream))
{
string result = scriptReader.ReadToEnd();
return result;
}
}
catch(Exception ex)
{
throw new Exception(string.Format("Failed to load script '{0}'", resourceName), ex);
}
}
}
}
Can anyone please help me to fix this issue.
What I have tried:
I tried to delete the migration and create a new migration and also tried to rebuild the solution. But nothing seems to fix the issue.