6

Ben varlık framework 6 kullanarak veri getirecek bir web API'ı uyguluyorum Sql Server 2014 ve visual studio kullanıyorum 2015.Windowsdao sınıfında kod hata ayıklama Ben müşteri nesnesinde kayıtları görebilirsiniz rağmen customerOrderContext nesne bir istisna görüyorum. Ancak kullanım bloğu yürütüldükten sonra herhangi bir kayıt göremiyorum.Entity Framework 6 hata serverversion: (System.Data.SqlClient.SqlConnection) customerOrderContext.Database.Connection) .ServerVersion

yapılandırma dosyasında bağlantı dizesi aşağıdaki gibidir

using (var customerOrderContext = new Entities()) 
       { 
        return (from customer in customerOrderContext.Customers 

          select new CustomerOrder.BusinessObjects.Customers 
          { 
           Id = customer.Id, 
           FirstName = customer.FirstName, 
           LastName = customer.LastName, 
           Address = customer.Address, 
           City = customer.City, 
           Email = customer.Email, 
           Gender = customer.Gender, 
           State = customer.State, 
           Zip = customer.Zip 
          }).ToList(); 
       } 

((System.Data.SqlClient.SqlConnection) customerOrderContext.Database.Connection) .ServerVersion

CustomerDao

<add name="Entities" connectionString="metadata=res://*/EF.CustomerOrderContext.csdl|res://*/EF.CustomerOrderContext.ssdl|res://*/EF.CustomerOrderContext.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=Tom-PC\MSSQLSERVER2014;initial catalog=Ransang;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 

Bağlam sınıfı şu şekildedir:

public partial class Entities : DbContext 
{ 
    public Entities() 
     : base("name=Entities") 
    { 
    } 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 

    } 

    public virtual DbSet<Customer> Customers { get; set; } 
    public virtual DbSet<OrderDetail> OrderDetails { get; set; } 
    public virtual DbSet<Order> Orders { get; set; } 
    public virtual DbSet<Product> Products { get; set; } 
} 

enter image description here

CustomProvider.cs

public IEnumerable<BusinessObjects.Customers> GetAllCustomers() 
     { 
      IList<BusinessObjects.Customers> customerCollection = new List<BusinessObjects.Customers>(); 
      dataAccess.CustomerDao.GetAllCustomers(); 
      return customerCollection; 
     } 
+0

herhangi istisna alıyor musunuz? * (System.Data.SqlClient.SqlConnection) customerOrderContext.Database.Connection) .ServerVersion * bir istisna mesajı görünmüyor. Onu nerede gördün? –

+0

CustomerDao sınıfındaki kodda hata ayıklama yaparken, müşteri nesnesindeki kayıtları görebilmem de customerOrderContext nesnesinde bir istisna görüyorum. Ancak kullanım bloğu yürütüldükten sonra herhangi bir kayıt göremiyorum. Ben bağlantı kurmak ve bu nedenle UI – Tom

+0

veri alamıyorum bazı sorun var olduğunu düşünüyorum Özel durum mesajı nedir? –

cevap

6

istisna documented ve bağlantı kapatıldı almasıdır. Bununla ilgili bir sorun yok.

Ama açıkçası sonucu, sadece yöntemde new List<BusinessObjects.Customers>() iade kullanmıyordu çünkü boş bir sonuç almak:

public IEnumerable<BusinessObjects.Customers> GetAllCustomers() 
{ 
    IList<BusinessObjects.Customers> customerCollection = 
     new List<BusinessObjects.Customers>(); // ← An empty list 
    dataAccess.CustomerDao.GetAllCustomers(); // ← Just executed but didn't use anywhere 
    return customerCollection;     // ← The empty list you created at first 
} 

Sen return dataAccess.CustomerDao.GetAllCustomers(); gerekir: