第一篇博客,还望各位大神勿喷

小弟在此代码奉上........

借用NorthWind数据库,实现一个商品展示的小功能。上代码:

添加对Linq的引用

 using System.Data.Linq;//添加对Linq的引用
using System.Data.Linq.Mapping;//配置对象和映射关系的命名空间

由于图简单,所以写了很少的字段,继续代码

    [Table(Name = "Products")]
public class Product
{
[Column(Name = "ProductID", DbType = "int identity(1,1) not null", IsPrimaryKey = true, IsDbGenerated = true, AutoSync = AutoSync.OnInsert, CanBeNull = true)]
public int ProductID { get; set; }
[Column(Name = "ProductName", DbType = "nvarchar(40) not null")]
public string ProductName { get; set; }
[Column(Name = "CategoryID", DbType = "int", CanBeNull = true)]
public int CategoryID { get; set; }
[Column(Name = "UnitPrice", DbType = "money")]
public decimal? Price { get; set; }
}
     [Table(Name = "Categories")]
public class Categoty
{
[Column(Name = "CategoryID", DbType = "int identity(1,1) not null", IsPrimaryKey = true, IsDbGenerated = true, CanBeNull = true, AutoSync = AutoSync.OnInsert)]
public int ID { get; set; }
[Column(Name = "CategoryName", DbType = "nvarchar(15) not null")]
public string CategoryName { get; set; }
[Column(Name = "Description", DbType = "ntext null")]
public string Description { get; set; } private EntitySet<Products> _products;
[Association(Name = "C_P", IsForeignKey = false, OtherKey = "CategoryID", ThisKey = "ID", Storage = "_products")]
public IList<Products> Products
{
get { return _products; } //上级接受下级参数,直接返回,上级:Category 下级:Product
set { _products.Assign(value); }//下级接受上级参数,使用Assign方法进行向上转换
}
}

上面分别是两个类:商品类Product与商品类别Category,下面继续创建上下文对象

  public class NorthwindDBContext : DataContext
{
private static readonly string conn = ConfigurationManager.ConnectionStrings["Myconn"].ConnectionString;//数据库的连接 public NorthwindDBContext()
: base(conn) { } public NorthwindDBContext(string connection)
: base(connection) { } public Table<Categoty> Category; public Table<Products> Products;
}

接下来就是展示页面了,创建一个aspx页面吧,扔两个控件上去

 <body>
<form id="form1" runat="server">
<div>
<asp:DropDownList ID="DropDownListCategory" runat="server">
</asp:DropDownList>
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>
</div>
</form>
</body>

页面现在也有了,后台代码:

 public partial class ProductsList : System.Web.UI.Page
{
Model.NorthwindDBContext db = new Model.NorthwindDBContext();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
var query = db.Products.Count();
BandCategory();
}
} private void BandCategory()
{ var allCate = from c in db.Catrgorys select c;
this.DropDownListCategory.DataValueField = "ID";
this.DropDownListCategory.DataTextField = "Name";
this.DropDownListCategory.DataSource = allCate;
this.DropDownListCategory.DataBind();
} protected void Button1_Click(object sender, EventArgs e)
{
BandProduct();
} private void BandProduct()
{ //生成日志文件,方便程序出错查看生成的SQL语句
db.Log = new StreamWriter(Server.MapPath("~/log.txt"), true);
int cid = int.Parse(this.DropDownListCategory.SelectedValue);
List<Model.Product> lst = db.Products.ToList();
var Products = db.Products.Where(x => x.CategoryID == cid);
//拿到类别对象
//var cate = db.Category.Where(x => x.CategoryID == cid).First();
this.GridView1.DataSource = Products;//cate.Product;两种方法都行
this.GridView1.DataBind();
db.Log.Flush();
db.Log.Close(); }

最后效果:

表示刚工作学生路过,大神勿喷...以后会陆续分享一些工作心得的

回顾:Linq To SQL语法 - 实体类的更多相关文章

  1. LINQ to SQL 建立实体类

    使用LINQ to SQL时,需要首先建立用于映射数据库对象的模型,也就是实体类.在运行时,LINQ to SQL 根据LINQ表达式或查询运算符生成SQL语句,发送到数据库进行操作.数据库返回后,L ...

  2. 步步学LINQ to SQL:为实体类添加关系【转】

    [IT168 专稿]本文详细为你阐述了如何在你的应用程序中实现LINQ to SQL.附件的示例程序包括了这里探讨的所有代码,还提供了一个简单的WPF图形界面程序来显示通过数据绑定返回的结果集. 第一 ...

  3. LINQ to SQL 建立实体类 (转)

    http://www.cnblogs.com/DebugLZQ/archive/2012/11/14/2770449.html 使用LINQ to SQL时,需要首先建立用于映射数据库对象的模型,也就 ...

  4. Linq to SQL 语法查询(链接查询,子查询 & in操作 & join,分组统计等)

    Linq to SQL 语法查询(链接查询,子查询 & in操作 & join,分组统计等) 子查询 描述:查询订单数超过5的顾客信息 查询句法: var 子查询 = from c i ...

  5. FreeSql (二十四)Linq To Sql 语法使用介绍

    原本不支持 IQueryable 主要出于使用习惯的考虑,如果继承 IQueryable,编写代码的智能总会提示出现一堆你不想使用的方法(对不起,我有强迫症),IQueryable 自身提供了一堆没法 ...

  6. [转]LINQ To SQL 语法及实例大全

    转载自:http://blog.csdn.net/pan_junbiao/article/details/7015633 LINQ to SQL语句(1)之Where Where操作 适用场景:实现过 ...

  7. .net 根据匿名类生成实体类,根据datatable生成实体类,根据sql生成实体类

    在开发中可能会遇到这几种情况 1.EF或LINQ查询出来的匿名对象在其它地方调用不方便,又懒的手动建实体类 2.通过datatable反射实体需要先建一个类 ,头痛 3.通过SQL语句返回的实体也需要 ...

  8. LINQ To SQL 语法及实例大全

    http://blog.csdn.net/pan_junbiao/article/details/7015633 http://blog.csdn.net/pan_junbiao/article/de ...

  9. Linq to sql语法

    LINQ to SQL语句(1)之Where Where操作 适用场景:实现过滤,查询等功能. 说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的子 ...

随机推荐

  1. C++拾遗(六)函数相关(1)

    返回值 C++规定返回值不能是 数组.但可以是其它任何类型(包括结构体和对象). 通常,函数将返回值复制到指定的CPU寄存器或内存单元中,然后调用函数调用该内存单元的值. 函数原型 参数列表中可以不包 ...

  2. 使用HTML+CSS,jQuery编写的简易计算器后续(添加了键盘监听)

    之前发布了一款简易的计算器,今天做了一下修改,添加了键盘监听事件,不用再用鼠标点点点啦 JS代码: var yunSuan = 0;// 运算符号,0-无运算;1-加法;2-减法;3-乘法;4-除法 ...

  3. Android基本组件-Activity

    什么是Activity 在Android程序中,每个Activity继承自android.app.Activity, 有一个与之对应的xml布局文件, 一个界面对应一个Activity, 每个Acti ...

  4. 第几天 AC 杭电

    第几天? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  5. iOS开发——C篇&函数解析

    关于函数,作为一个开发者事必须掌握的知识不管你在那一个领域,所以今天我就来说一说函数. 一:函数的介绍 关于函数,其实笔者在前面都已经演示不少了,其中用的最多的就是main函数,虽然直接说函数可能不太 ...

  6. 无法将类型“System.Nullable`1”强制转换为类型“System.Object”。LINQ to Entities 仅支持强制转换 EDM 基元或枚举类型。

    在一个项目中使用LINQ和EF时出现了题目所示的异常,搜索了很多资料都找不到解决办法,主要是因为EF方面的知识欠缺. 先将情况记录如下,以供以后参考. 查询主要设计两张表,由外键关联: 在进行下面的查 ...

  7. TOP 100 MISSPELT/MISSPELLED WORDS IN ENGLISH

    acceptable accidentally accommodate acquire  acquit a lot amateur apparent argument atheist believe ...

  8. altium designer不经过原理图直接在空白pcb上加封装然后画线

    如果是复杂点的PCB,建议还是画下SCH,如果PCB只有几个元件,那么可以用这种方法,想不画原理图,直接进行布线,往往是很多初学者最想知道的,但是这也一定不是初学者能学到的.因为你买的书,都是按画PC ...

  9. Android特效 五种Toast详解

    Toast是Android中用来显示显示信息的一种机制,和Dialog不一样的是,Toast是没有焦点的,而且Toast显示的时间有限,过一定的时间就会自动消失.而且Toast主要用于向用户显示提示消 ...

  10. perl 安装AnyEvent::HTTP

    perl 版本 ActivePerl_5.16.2.msi