我试图跟踪是否有可能在Entity Framework中检查数据库表是否添加了新记录。我正在尝试从控制器获取记录,只有在数据库表中添加了任何新记录。有什么建议吗?
服务器:
[HttpGet]
public JsonResult DisplayChatMsgs()
{
var chatMsgs = dbObj.tblChats.ToList();
return Json(chatMsgs, JsonRequestBehavior.AllowGet);
}
客户端:
$.ajax({
url: "Default/DisplayChatMsgs",
type: "Get",
success: function (data) {
//var mdata = $.parseJSON(data.d);
//The Div to be populated
$('#msgBox').empty();
content = "";
//Looping thru each record
$.each(data, function (i, record) {
//Properties available in Model
//We need to specify the properties in our model
content += "<tr><td><b>" + record.toName + "</b>:</td><td>" + record.chatMsg + "</td></tr>";
});
table = "<table>" + content + "</table>"
$(table).appendTo('#msgBox');
$("#msgBox").animate({ scrollTop: $('#msgBox')[0].scrollHeight }, 1000);
}
});
答案 0 :(得分:2)
我99.99%确定EF中有内置方式可以在向DB添加行时收到通知。
您尝试的解决方法是使用SignalR:每次您的应用程序写入该表时,您都会向客户端发布消息以获取新数据。这种方法的不雅之处在于你必须点击你写入该表的每个地方。但是如果你使用Repository Pattern会很棒,那么你只需要在一个地方进行更改。