本文整理汇总了C#中System.Data.Entity.Migrations.Design.MigrationScaffolder.Scaffold方法的典型用法代码示例。如果您正苦于以下问题:C# MigrationScaffolder.Scaffold方法的具体用法?C# MigrationScaffolder.Scaffold怎么用?C# MigrationScaffolder.Scaffold使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Data.Entity.Migrations.Design.MigrationScaffolder
的用法示例。
在下文中一共展示了MigrationScaffolder.Scaffold方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Add
public void Add (string title)
{
var scaffolder = new MigrationScaffolder (_config);
var migration = scaffolder.Scaffold (title);
//Because monodevelop/xamarin doesn't support resxfilecodegenerator, we can't user resx files properly
//Another issue is lack of power shell support which force us to generate all cs/resx files manually and add them to
//projet, what is why we are going to put all migration data to one file using ugly hacks
//Code might stop working on future versions of Entity framework.
//Add Migration Namespace
migration.UserCode = "using System.Data.Entity.Migrations.Infrastructure;\n\n" + migration.UserCode;
//Add IMigrationMetadata interface
migration.UserCode = migration.UserCode.Replace ("DbMigration", "DbMigration, IMigrationMetadata");
//Insert IMigrationMetadate implementation
migration.UserCode = migration.UserCode.Replace ("public override void Up()",
string.Format ("\tstring IMigrationMetadata.Id {{\n\t\t\t" +
"get {{ return \"{0}\"; }}\n\t\t" +
"}}\n\n\t\t" +
"string IMigrationMetadata.Source {{\n\t\t\t" +
"get {{ return null; }}\n\t\t" +
"}}\n\n\n\t\t" +
"string IMigrationMetadata.Target {{\n\t\t\t" +
"get {{ return \"{1}\"; }}\n\t\t}}" +
"\n\n\tpublic override void Up()", migration.MigrationId, migration.Resources ["Target"]));
File.WriteAllText (Path.Combine (_migrationFolder, migration.MigrationId + ".cs"), migration.UserCode);
}
示例2: AddMigration
public void AddMigration(string name, bool ignoreChanges)
{
var config = FindDbMigrationsConfiguration();
// Scaffold migration.
var scaffolder = new MigrationScaffolder(config);
var migration = scaffolder.Scaffold(name, ignoreChanges);
// Write the user code file.
File.WriteAllText(Combine(MigrationsDir, migration.MigrationId + ".cs"), migration.UserCode);
// Write needed resource values directly inside the designer code file.
// Apparently, aspnet and resource files don't play well (or more specifically,
// the way ef6 migration generator is interacting with the resources system)
var targetValue = migration.Resources["Target"];
var designerCode = migration.DesignerCode
.Replace("Resources.GetString(\"Target\")", $"\"{targetValue}\"")
.Replace("private readonly ResourceManager Resources = new ResourceManager(typeof(InitialCreate));", "");
// Write the designer code file.
File.WriteAllText(Path.Combine(MigrationsDir, migration.MigrationId + ".Designer.cs"), designerCode);
}
示例3: AddMigration
public virtual void AddMigration(
String migrationName,
String contextTypeName,
String rootNamespace,
String projectDir)
{
var contextType = GetContextType(contextTypeName);
var configurationType = GetConfigurationType(contextType);
var configuration = CreateConfiguration(configurationType);
var scaffolder = new MigrationScaffolder(configuration);
var migration = scaffolder.Scaffold(migrationName);
var migrationDirectory = Path.Combine(projectDir, migration.Directory);
var migrationFile = Path.Combine(migrationDirectory, migration.MigrationId + "." + migration.Language);
var migrationMetadataFile = Path.Combine(migrationDirectory, migration.MigrationId + ".Designer." + migration.Language);
var designerCode =
migration.DesignerCode
.Replace("private readonly ResourceManager", "//private readonly ResourceManager");
foreach (var replaceKey in new[] { "Source", "Target" })
{
if (migration.Resources.ContainsKey(replaceKey))
{
var code = String.Format("Resources.GetString(\"{0}\")", replaceKey);
var valueString = String.Format("\"{0}\"", migration.Resources[replaceKey]);
designerCode = designerCode.Replace(code, valueString);
}
}
Directory.CreateDirectory(migrationDirectory);
File.WriteAllText(migrationFile, migration.UserCode);
File.WriteAllText(migrationMetadataFile, designerCode);
}
示例4: Scaffold
protected virtual ScaffoldedMigration Scaffold(MigrationScaffolder scaffolder)
{
return scaffolder.Scaffold(MigrationName, IgnoreChanges);
}