我正在關注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-更少的解決方案,當前的投機,假設聯繫人在數據庫中具有三個字段,ContactID
,Name
和Password
:
Models/Contact.cs
類:
public class Contact
{
public string Name { get; set; }
public string Password { get; set; }
}
Controllers/DataController.cs
,GetLastContact()
:
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;
});
我覺得雖然我的解決方案可能是意大利麪,也不能太離譜的工作。任何人都可以給這個代碼任何小推動都會很棒!或者有關如何進行剝離其實體的實體的任何建設性意見。
當然!我也忘記聲明用於循環外的字段的字符串。謝謝! – WakaChewbacca