linq + mvc开发模式的问题
如果我有两张表,一张用户表(Users),一张状态表(State)表,用户Id与状态Id是主外键关系。如果我想实现对用户信息的增、删、改、查(查询所有(分页),按状态或者用户的Id去查询),用linq + mvc开发模式去实现该怎么做了,请各位牛人帮帮忙,因为我是初学者,可不可以请各位帮忙写一个下例子呢?我将感激涕零......
[解决办法]
Linq to SQL 提供了对其进行增、删、改、查的方法。你可以查MSDN
与其他实现MVC模式一样,只是LINQ TO SQL 的返回结果要注意,LINQ查出来的结果存在于表当中,像DATASET一样,读取时要用foreach。
[解决办法]
LINQ查出来的结果存在于表当中,像DATASET一样?
晕啊 。
[解决办法]
参考下:
http://www.cnblogs.com/lyj/archive/2008/01/28/1056133.html
[解决办法]
给你个例子:
mvcGridView类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.UI.WebControls;
namespace Web
{
public class mvcGridView:GridView
{
public string Key
{ get; set; }
public ViewPage ViewPage
{ get { return this.Page as ViewPage; } }
protected override void OnLoad(EventArgs e)
{
this.DataSource = this.ViewPage.ViewData[this.Key]; //得到数据源
this.DataBind(); //绑定 这样就不用手动写N个绑定了
base.OnLoad(e);
}
}
}
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %>
<%@ Register assembly="Web" namespace="Web" tagprefix="cc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title> </title>
<link href="../../Content/css/main.css" rel="stylesheet" type="text/css" />
<script src="../../Scripts/jquery-1.3.2-vsdoc2.js" type="text/javascript"> </script>
<script type="text/javascript" >
function DelCustomer(CustomerID) {
if (confirm("确定删除吗?")) {
$.ajax({
type: "get",
dataType: "html",
url: "/Home/DelCustomer/" + CustomerID,
success: function(msg) {
if (msg == "成功") {
alert("删除成功!");
window.location.reload();
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("删除失败!\n信息:" + errorThrown + "," + textStatus + "\n");
}
})
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<cc1:mvcGridView ID="MvcGridView1" Key="Customers" AutoGenerateColumns="False" runat="server">
<Columns>
<asp:BoundField DataField="CustomerID" HeaderText="客户ID" />
<asp:BoundField DataField="CompanyName" HeaderText="公司名" />
<asp:BoundField DataField="ContactName" HeaderText="联系人" />
<asp:BoundField DataField="ContactTitle" HeaderText="联系人职务" />
<asp:BoundField DataField="Address" HeaderText="地址" />
<asp:BoundField DataField="City" HeaderText="城市" />
<asp:BoundField DataField="Region" HeaderText="地区" />
<asp:BoundField DataField="Postalcode" HeaderText="邮编" />
<asp:BoundField DataField="Country" HeaderText="国家" />
<asp:BoundField DataField="Phone" HeaderText="电话" />
<asp:BoundField DataField="Fax" HeaderText="传真" />
<asp:TemplateField>
<HeaderTemplate>
删除
</HeaderTemplate>
<ItemTemplate>
<a href="javascript:void(0);" onclick="DelCustomer(' <%# Eval("CustomerID") %>')">删除 </a>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</cc1:mvcGridView>
</div>
</form>
</body>
</html>
public ActionResult GridView() { var dbc = new DBCustomerDataContext();//DBCustomer 是linq to sql类 ViewData["Customers"] = from c in dbc.DBCustomers select c; return View(); } public ActionResult DelCustomer(string id) { string result = ""; try { DBCustomerDataContext dbcustomer = new DBCustomerDataContext(); string i = id; var customer = dbcustomer.DBCustomers.First(c => c.CustomerID.Equals(i)); dbcustomer.DBCustomers.DeleteOnSubmit(customer); dbcustomer.SubmitChanges(); result = "成功"; } catch(System.Exception error) { _log.Error(error.Message.ToString()); result = "失败"; } return Content(result); }