我正在关注ASP.NET MVC&的在线教程。 Angular,但作者(Sourav Mondal)使用Entity来查询数据库。不幸的是,我使用的是SQL Server 2000,EF不是一个选项。以下是我试图转置的代码:
// 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代码:
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;
});
我觉得虽然我的解决方案可能是意大利面条,但它离工作也不会太远。任何人都可以提供这些代码的任何小推动都会很棒!或者关于如何开始剥离其实体的实体的任何建设性建议。
答案 0 :(得分:1)
// Some magic here
c = new Contact
{
Name = first_name,
Password = password
};
// end of magic
答案 1 :(得分:0)
我不确定你想要什么。
对我来说,它听起来更像是你想为自己的数据库制作自己的实体(不支持EF)
所以只需创建一个表的类并获取它的List就可以了。
小例子:
SomeClass的
列出allContactsInDatabase;
要保持数据更新,请使用轮询,或者每30秒调用一次刷新,或者根据需要更快/更慢地调用。
希望有帮助