Динамические данные ASP.NET не видят частичный класс «приятель» метаданных

У меня есть веб-сайт динамических данных ASP.NET 4, который работает с довольно простым набором таблиц базы данных, представленных через модель Entity Framework в другой сборке. Я не хочу формировать все таблицы в модели EF, поэтому в моем файле global.asax, я инициализировал модель по умолчанию следующим образом:

DefaultModel.RegisterContext (typeof (MyCompany.MyProject.DataModel.DataContext), new ContextConfiguration () {ScaffoldAllTables = false});

Документы MSDN (и комментарии в файле global.asax) говорят, что теперь я должен иметь возможность выборочно включать каркас отдельных таблиц, добавляя атрибут [ScaffoldTable (true)] к их частичному классу «приятеля». Я сделал это примерно так:

using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Web.DynamicData;

namespace MyCompany.MyProject.DataModel
{
    [MetadataType( typeof( InHouseClaimMetadata ) )]
    [ScaffoldTable( true )]
    public partial class InHouseClaim
    {
        [DisplayName( "In-House Claims" )]
        [TableName( "In-House Claims" )]
        public class InHouseClaimMetadata
        {
            [DisplayName( "Reporting Date" )]
            public object ReportingDate { get; set; }

            // etc etc...
        }
    }
}

Но при загрузке Default.aspx я получаю следующее сообщение об ошибке:

Нет доступных таблиц. Убедитесь, что хотя бы одна модель данных зарегистрирован в Global.asax и леса включены или реализованы настраиваемые страницы.

Я уже заставлял это работать в аналогичных сценариях раньше; Единственное, что отличает эту попытку, - это то, что моя модель EF является собственной сборкой. Если я изменю global.asax, чтобы продолжить и сформировать все таблицы, он будет работать нормально. Но, очевидно, я этого не хочу. Я внимательно следил за тем, чтобы пространство имен для класса частичных метаданных соответствовало пространству имен контекста данных EF.

Итак, я в тупике ...

6
задан Matt Peterson 6 January 2012 в 22:24
поделиться