2

Я создал решение с проектом ASP.NET 5 MVC6 и несколькими библиотеками классов. Я использую Visual Studio 2015, и я нацелен на «dnxcore50» и «net451».Попытка использования DbSet <TEntity>. Where() с EF7 и ASP.NET5

В библиотеке классов я пишу код репозитория с помощью EF7. В классе я пытаюсь использовать несколько методов на DbSet <>. А именно «.Where (...)», «.Single (...)» и «.First (...)». Они были доступны в старой версии .NET.

Я получаю следующие 2 ошибки:

.NET Framework 4.5.1 ошибка CS0012: Тип 'IEnumerable <>' определяется в сборке, которая не ссылается . Вы должны добавить ссылку на сборка 'System.Runtime, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a'.

Ошибка .NET Framework 4.5.1 CS0012: Тип 'Func <,>' определен в сборке , на которую не указаны ссылки. Вы должны добавить ссылку на сборку 'System.Runtime, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a'.

Похоже, что проблема не возникает в формате DNXCORE50, но не в полной версии 4.5.1 .NET.

У меня есть это в файле project.json:

"frameworks": { 
    "net451": { 
     "dependencies": { 
     "System.Runtime": "4.0.21-beta-23516" 
     } 
    }, 
    "dnxcore50": { 
     "dependencies": { 
     "System.Runtime": "4.0.21-beta-23516" 
     ...... 
     } 
    } 
    } 

Я ориентируюсь 1.0.0-rc1-окончательная версия DNX SDK.

Любые идеи?

ответ

6

Хорошо, я наконец-то подумал, что мне удалось выяснить, почему. Если вы создаете библиотеку классов, файл project.json имеет:

"net451": { }, 

в разделе «рамки». Если я изменю это на:

"dnx451": { }, 

он тогда работает. Я не уверен на 100%, если у вас есть что-то другое. Но я буду использовать это сейчас.

+0

спасибо за обмен. Это работа для меня – zenixgrace

1

для дополнительного ответа мы можем использовать net451 путем добавления "System.Runtime"

"net451": { 
 
     "frameworkAssemblies": { 
 
     "System.Runtime": "" 
 
     } 
 
    }