Tôi đang sử dụng EF 4.1 và tôi tạo tệp EF edmx bình thường. Tôi tạo từ DB.Entity Framework không thể sử dụng DbContext, mô hình đang được tạo
Khi được tạo, tôi nhấp chuột phải và chọn thêm mục tạo mã, để tạo các lớp mới và sử dụng DbContext thay thế. Tôi sử dụng trình tạo mẫu DbContext.
Mọi thứ hoạt động tốt.
Sau đó, tôi Trie để truy vấn bối cảnh:
using (var context = new PasDBEntities())
{
var client=context.ClientCompanies.SingleOrDefault(_=>_.ID==clientCompanyId);
if(client!=null)
Tôi không có vấn đề tạo ra một thể hiện mới của bối cảnh nhưng khi tôi cố gắng để truy vấn nó trở thành vấn đề xảy ra. Tôi bị kẹt trên UnintentionalCodeFirstException. Và nhận được lỗi:
{"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."}
Tôi không muốn sử dụng mã đầu tiên, nhưng tôi không biết nếu tôi có thể "chuyển" nó đi, hoặc nơi mà vấn đề là.
Để tham khảo, đây là nhà xây dựng của tôi ...
public partial class PasDBEntities : DbContext
{
public PasDBEntities()
: base("PasDBEntities")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
... và chuỗi kết nối:
<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>
là chuỗi kết nối này trong "tập tin cấu hình của ** thực hiện ứng dụng **" (trích dẫn ngoại lệ) và không chỉ trong một tập tin cấu hình của một dự án thư viện? – Slauma
Bạn đúng vậy. Tôi không biết rằng tôi đã phải thêm một tập tin cấu hình thêm cho chuỗi kết nối trong dự án thử nghiệm đơn vị của tôi để có thể sử dụng EF. Điều đó giải quyết được vấn đề của tôi, thêm một tệp app.config khác. – Fore