Я пытаюсь создать шаблон элемента в Visual Studio 2013 для класса контекста EF Code-First. У меня все работает, но я хочу, чтобы оператор using указывал на пространство имен в текущем проекте. Например, при создании экземпляра элемента шаблона в Projectname .Contexts что используя оператор будет:Шаблон элемента Visual Studio: Заменить с именем проекта
использованием Projectname .Models
Проблема заключается в том, что я не могу найти способ заменить часть в шаблоне элемента. Как только я могу определить, $ projectname $ и $ safeprojectname $ работают только в шаблонах проектов, а не в шаблонах элементов.
Мой шаблон выглядит следующим образом:
using System;
using System.Data.Entity;
using System.Data.Entity.ModelConfiguration.Conventions;
using $safeprojectname$.DAL.Models; // This is the problem line
namespace $rootnamespace$
{
public class $safeitemrootname$
: DbContext
{
// Constructors =======================================================
public $safeitemrootname$()
: base("$safeitemrootname$")
{
}
// DBSets =============================================================
// public DbSet<Company> Companies { get; set; }
// Configuration ======================================================
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
}
}
Update:
В ответ на Ханса комментарий, вот выход, когда я пытаюсь использовать $ Projectname $ ($ safeprojectname $ делает то же самое) :
using System;
using System.Data.Entity;
using System.Data.Entity.ModelConfiguration.Conventions;
using $projectname$.DAL.Models; // This is the problem line
Как вы можете видеть, подстановка $ projectname $ просто игнорируется.
Любая помощь будет оценена,
Джейсон
Нет, это прекрасно работает в шаблоне товаров. Он заменяется значением пространства имен по умолчанию для проекта. Как указано в закладке Project + Properties, Application. –