读书人

linq + mvc开发模式的有关问题

发布时间: 2011-12-31 23:50:30 作者: rapoo

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类

C# code
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);
}
}
}


view:
HTML code
 <%@ 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>



Controller:

C# code
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);        } 

读书人网 >.NET

热点推荐