当前位置: 首页>>代码示例>>C#>>正文


C# MigrationScaffolder.Scaffold方法代码示例

本文整理汇总了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);
		}
开发者ID:jamespack,项目名称:DemiByte.EntityFrameworkMigrationSample,代码行数:32,代码来源:MigrationManager.cs

示例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);
		}
开发者ID:RehanSaeed,项目名称:Migrator.EF6,代码行数:22,代码来源:Executor.cs

示例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);
 }
开发者ID:mcliment,项目名称:EF6.Commands,代码行数:38,代码来源:MigrationTool.cs

示例4: Scaffold

 protected virtual ScaffoldedMigration Scaffold(MigrationScaffolder scaffolder)
 {
     return scaffolder.Scaffold(MigrationName, IgnoreChanges);
 }
开发者ID:Cireson,项目名称:EntityFramework6,代码行数:4,代码来源:ToolingFacade.cs


注:本文中的System.Data.Entity.Migrations.Design.MigrationScaffolder.Scaffold方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。