У меня есть веб-сайт динамических данных 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.
Итак, я в тупике ...