Я использую EF 4.1, и я создаю нормальный файл edmx EF. Я генерирую его из БД.Entity Framework не может использовать DbContext, создаваемая модель
Когда он был создан, щелкните правой кнопкой мыши и выберите элемент генерации кода, чтобы создать новые классы и вместо этого используйте DbContext. Я использую генератор шаблона DbContext.
Все работает нормально.
Тогда я TRIE запросить контекст:
using (var context = new PasDBEntities())
{
var client=context.ClientCompanies.SingleOrDefault(_=>_.ID==clientCompanyId);
if(client!=null)
У меня нет проблемы при создании нового экземпляра контекста, но когда я пытаюсь запросить его проблемы возникают. Я застрял в UnintentionalCodeFirstException. И получает ошибку:
{"Code generated using the T4 templates for Database First and Model First development may not work correctly if used in Code First mode. To continue using Database First or Model First ensure that the Entity Framework connection string is specified in the config file of executing application. To use these classes, that were generated from Database First or Model First, with Code First add any additional configuration using attributes or the DbModelBuilder API and then remove the code that throws this exception."}
Я не хочу использовать код первого, но я не знаю, могу ли я «переключить» его, или где проблема.
Для справки, вот мой конструктор ...
public partial class PasDBEntities : DbContext
{
public PasDBEntities()
: base("PasDBEntities")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
... и строка подключения:
<connectionStrings>
<add name="PasDBEntities"
connectionString="metadata=res://*/PasDB.csdl|
res://*/PasDB.ssdl|
res://*/PasDB.msl;
provider=System.Data.SqlClient;
provider connection string="
data source=localhost;
initial catalog=PasDB;
integrated security=True;
pooling=False;
multipleactiveresultsets=True;
App=EntityFramework""
providerName="System.Data.EntityClient" />
</connectionStrings>
Это строка подключения в «конфигурационном файле ** выполнения приложения **» (цитата исключение), а не только в конфигурационном файле проекта библиотеки? – Slauma
Вы так правы. Я не знал, что мне пришлось добавить дополнительный файл конфигурации для строки подключения в моем модульном тестовом проекте, чтобы иметь возможность использовать EF. Это решило мою проблему, добавив еще один файл app.config. – Fore