2016-07-28 57 views
0

我正在關注ASP.NET MVC & Angular的在線教程,但作者(Sourav Mondal)使用實體來查詢數據庫。不幸的是,我正在使用SQL Server 2000,而EF不是一個選項。以下是我在嘗試轉碼:將實體框架的GET轉換爲不帶實體框架的GET

// GET: /Data/ 
//For fetch Last Contact 
public JsonResult GetLastContact() 
{ 
     Contact c = null; 
     //here MyDatabaseEntities our DBContext 
     using (MyDatabaseEntities dc = new MyDatabaseEntities()) 
     { 
      c = dc.Contacts.OrderByDescending(a => a.ContactID).Take(1).FirstOrDefault(); 
     } 
     return new JsonResult { Data = c, JsonRequestBehavior = JsonRequestBehavior.AllowGet }; 
} 

這是我的EF-更少的解決方案,當前的投機,假設聯繫人在數據庫中具有三個字段,ContactIDNamePassword

Models/Contact.cs類:

public class Contact 
{ 
    public string Name { get; set; } 
    public string Password { get; set; } 
} 

Controllers/DataController.csGetLastContact()

public class DataController : Controller 
{ 
    // GET: /Data/ 
    public JsonResult GetLastContact() 
    { 

     Contact c = null; 
     using (SqlConnection cnxn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["TheConnectionString"].ConnectionString)) 
     { 
      using (SqlCommand sqlQuery = new SqlCommand("SELECT TOP 1 ContactID FROM Northwind ORDER BY ContactID DESC ")) 
      { 
       cnxn.Open(); 
       SqlDataReader reader = sqlQuery.ExecuteReader(); 

       while (reader.Read()) 
       { 
        string contact_ID = (string)reader["ContactID"]; 
        string first_name = (string)reader["Name"]; 
        string password = (string)reader["Password"]; 
       } 
       // Some magic here 

       reader.Close(); 
       cnxn.Close(); 
      } 
     } 

     return new JsonResult { Data = c, JsonRequestBehavior = JsonRequestBehavior.AllowGet }; 
    } 
} 

而且Sourav的角碼:

 angular.module('MyApp') //extending from previously created angular module in the previous part 
     .controller('Part2Controller', function ($scope, ContactService) { //inject ContactService 
      $scope.Contact = null; 
      ContactService.GetLastContact().then(function (d) { 
       $scope.Contact = d.data; // Success 
      }, function() { 
       alert('Failed'); // Failed 
      }); 
     }) 
     .factory('ContactService', function ($http) { // here I have created a factory which is a populer way to create and configure services 
      var fac = {}; 
      fac.GetLastContact = function() { 
       return $http.get('/Data/GetLastContact'); 
      } 
      return fac; 
     }); 

我覺得雖然我的解決方案可能是意大利麪,也不能太離譜的工作。任何人都可以給這個代碼任何小推動都會很棒!或者有關如何進行剝離其實體的實體的任何建設性意見。

回答

1
// Some magic here 
c = new Contact 
{ 
    Name = first_name, 
    Password = password 
}; 
// end of magic 
+0

當然!我也忘記聲明用於循環外的字段的字符串。謝謝! – WakaChewbacca

0

我不確定你想要什麼。

對我來說,它聽起來更像是你想使自己的實體數據庫(不支持EF)

因此,只要一些類表,並得到它的列表,以便完蛋了。

小實施例:

SomeClass的

列表allContactsInDatabase;

要保持您的數據更新使用輪詢,或者每30秒更新一次或更快/更慢地更新您的需要。

希望多多幫助