Skip to content

Instantly share code, notes, and snippets.

@mhinze
Created March 4, 2011 00:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mhinze/853888 to your computer and use it in GitHub Desktop.
Save mhinze/853888 to your computer and use it in GitHub Desktop.
show sql in EF
public static class InitializerExtensions {
public static IDatabaseInitializer<T> ShowSql<T>(this IDatabaseInitializer<T> initializer) where T : DbContext {
return new OutputtingInitializerDecorator<T>(initializer);
}
}
public class OutputtingInitializerDecorator<T> : IDatabaseInitializer<T> where T : DbContext {
readonly IDatabaseInitializer<T> _inner;
public OutputtingInitializerDecorator(IDatabaseInitializer<T> inner) {
_inner = inner;
}
public void InitializeDatabase(T context) {
ObjectContext objectContext = ((IObjectContextAdapter) context).ObjectContext;
string databaseScript = objectContext.CreateDatabaseScript();
Console.WriteLine(databaseScript);
_inner.InitializeDatabase(context);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment