2014-01-09 1 views
3

Я пытаюсь создать простой шаблон C# для некоторых материалов EF 6.0. Я создал шаблон в том же проекте, который определяет все объекты Entity Framework. Тем не менее, я, похоже, не могу использовать некоторые из типов, которые можно найти просто отлично в генераторе Entity, в частности, TypeMapper.В какой сборке используется System.Data.Entity.ModelConfiguration.Mappers.TypeMapper Defined?

Вот вершина моего Entity файла генератор T4:

<#@ template language="C#" debug="false" hostspecific="true"#> 
<#@ include file="EF.Utility.CS.ttinclude"#> 
<#@ output extension=".cs"#> 
<# 
const string inputFile = @"EpicCloudDB.edmx"; 
#> 
<#@ include file="EdmxEnumFixer.t4" #> 
<# 
var textTransform = DynamicTextTransformation.Create(this); 
var code = new CodeGenerationTools(this); 
var ef = new MetadataTools(this); 
var typeMapper = new TypeMapper(code, ef, textTransform.Errors); 
var fileManager = EntityFrameworkTemplateFileManager.Create(this); 
var itemCollection = new EdmMetadataLoader(textTransform.Host, textTransform.Errors).CreateEdmItemCollection(inputFile); 
var codeStringGenerator = new CodeStringGenerator(code, typeMapper, ef); 
#> 

Ничего сумасшедшего здесь происходит. Тем не менее, если я создаю шаблон и пасты, непосредственно в него (тот же проект) это не удается найти следующие типы:

  1. TypeMapper
  2. CodeStringGenerator
  3. EdmMetadataLoader

Я нуждаюсь только TypeMapper, но я не понимаю, почему один и тот же код шаблона не работает в новом шаблоне, но отлично работает в EF-файле по умолчанию.

Эти классы нелегко найти документацию. Я полагаю, могу ли я найти, какая сборка определяет TypeMapper. Я могу добавить ссылку вручную и беспокоиться об общей странности позже, но это оказалось сложнее, чем я ожидал.

Итак, как я могу импортировать этот тип в свой шаблон? Я прохожу через источник EF 6, пока жду ответа.

+0

Вы не смотрели в EF.Utility.CS.ttinclude? Должно быть определено там. – Will

+0

@Will: Я сделал, это не так. Если бы это был код, он работал бы. И, как я уже сказал, вы можете скопировать тот же самый точный шаблон кода выше, который работает в генераторе сущности EF, в новый шаблон, и он терпит неудачу. –

+0

@Will: [Вот определение] (https://github.com/mono/entityframework/blob/master/src/EntityFramework/ModelConfiguration/Mappers/TypeMapper.cs) –

ответ

5

Это, как представляется, определяется в том же самом файле .TT - вокруг линии 320.

+1

... Святое дерьмо вы правы. Я знал, что буду чувствовать себя глупо, после того, как это будет дан ответ ... –