2016-02-25 2 views
1

Я запускаю новый проект в ASP.Net 5 и ASP.NET MVC 6, работающий в DNX, и начал с шаблона MVC по умолчанию MVC 6 Visual Studio 2015 . Мой слой данных использует Entity Framework 7 с кодовым подходом.Переместить Data Access Logic в другой проект в ASP.Net 5

Проект моего веб-приложения затем в новом подходе: файл xproj, ссылающийся на разные конфигурационные файлы json (проект, решение, npm и менеджеры bower).

Как долгое время разработчик .Net у меня всегда был свой уровень доступа к данным в проекте .Net Assembly (или нескольких), а затем ссылался на каждый из моих клиентских проектов (например, веб-приложение, веб-API , консольные приложения или проекты тестирования модулей).

Мои вопросы:

  • что еще можно (я так думаю)
  • что рекомендуемый подход (проект на ассемблере или внутренний пакет NuGet)
  • как вы установили, что до (который должен быть использован вид шаблона проекта будет работать с xproj веб-приложения)
+0

Да. Возможно. Сохранение этого проекта в том же решении и выполнение ссылки на проект и создание nuget полностью зависит от вас.Я не уверен, какой файл xproj вы упоминаете здесь. В новых шаблонах MVC6 веб-проект не будет иметь файл проекта, такой как предыдущие версии. Это project.json играет роль организации зависимостей и т. Д. – Shyju

+0

Ну, на самом деле у меня есть файл xproj, и проект был создан всего месяц назад, с обновленными версиями DNX и MVC6. Синтаксис XML как из файлов csproj, не содержит ссылок любого типа (которые фактически зависят от файла project.json). – kall2sollies

ответ

0

После этого SO вопрос (What are my options for sharing code between DNX/ASP.NET 5 projects (project.json/xproj) and other C# projects (csproj) within a single solution?) - который близок к моему, кстати - я решил попробовать попробовать по умолчанию, который является «Class Library (Package)».

Я должен был изменить ссылки на время автономной работы, с тем, чтобы он работал:

  • моя главная project.json ссылка рамки dnx451 и dnxcore50.
  • Библиотека классов (Пакет) создала файл project.json с фреймами net451 и dotnet5.4.

Мне пришлось изменить последнее на dnx451 и dnxcore50, чтобы все работало.

Это остается необъяснимым решением, потому что AFAIK, dnx451 и dnxcore50 должны быть теперь заменены dnx451 и dnxcore50, но я должен был сделать обратное, или мои существующие ссылки (в том числе "EntityFramework.Commands": "7.0.0-rc1-final") будут нарушены.

В любом случае это решение работает, поэтому для тех, кто заинтересован в разделении своей логики EF в общем проекте, я бы рекомендовал прочитать эту статью, в которой объясняется, как включить команды ef (миграция и обновление базы данных) в проекте библиотеки классов: http://www.jerriepelser.com/blog/moving-entity-framework-7-models-to-external-project

1

это возможно, но вы должны справиться с этой проблемой: https://github.com/aspnet/dnx/issues/3047

Вы должны удалить любую поддержку локализации, добавив в ваш метод конфигурирования стартапа:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) 
{ 
    //... 
    var localizationOptions = new RequestLocalizationOptions() 
    { 
     SupportedCultures = new List<CultureInfo> { new CultureInfo("") }, 
     SupportedUICultures = new List<CultureInfo> { new CultureInfo("") } 
    }; 

    var invariantCulture = new RequestCulture(new CultureInfo(""), new CultureInfo("")); 

    app.UseRequestLocalization(localizationOptions, invariantCulture); 
    //... 
} 

В противном случае вы будете иметь этот FileNotFoundException:

FileNotFoundException: Couldn't find file EntityFramework.resources. 
at System.Reflection.RuntimeAssembly.InternalGetSatelliteAssembly(String name, CultureInfo culture, Version version, Boolean throwOnFileNotFound, StackCrawlMark& stackMark) 
at System.Resources.ManifestBasedResourceGroveler.GetSatelliteAssembly(CultureInfo lookForCulture, StackCrawlMark& stackMark) 
+0

К счастью, я уже делал это раньше, по независящим причинам (basicully я абсолютно уверен, что мне не нужна локализация!) – kall2sollies

+0

Итак, вы можете подделать свою инфраструктуру сущности dbcontext с помощью специализированного каталога вывода и иметь инфраструктуру вашего объекта в библиотеке классов. – AdrienTorris

+0

Точно чего я пытаюсь достичь. – kall2sollies

Смежные вопросы