最近网上看了一些关于Linq to sql 方面的资料,怎么说呢,感觉网上写的都挺不错的,但总感觉, 那些仅仅是个例子,只能当练习用,如果真的当作项目作,你能放心通过拖拉,让系统生成代码的过程么?那样做,快是快了点,可如果你的系统稍微做点修改,你看到那些自动生成的代码,估计每个人都会晕,更别说修改了。
对数据库操作,一般我们都会用到用到用户登录这个模块,通过输入用户名、密码,进行验证,通过用户所属角色,对对用户进行相应的操作。由于考虑到系统的分层。因此将各个模块进行了独立(我系统架构学的也不是太好,有不好的地方,欢迎大家批评指正。)
数据访问层(DAL):
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
using
System.Data.Linq;
using
System.Configuration;
namespace
Team.DBUtility
...
{

/**//// <summary>
/// 数据库底层操作类
/// </summary>
public sealed class DLinqHelper
...{

/**//// <summary>
/// 连接数据库字符串
/// </summary>
private static string ConnectionString = ConfigurationManager.ConnectionStrings["TeamConnectionString"].ConnectionString;
private static DataContext MyDataContext = new DataContext(ConnectionString);

/**//// <summary>
/// 获取数据内容
/// </summary>
public static DataContext GetDataContext
...{
get
...{
return MyDataContext;
}
}
}
}
为了简单,我建立的数据表包含的字段有用户姓名、用户登录代码,用户密码,用户角色字段。以下为用户登录信息表代码:
/**/
/*==============================================================*/

/**/
/* Table: USER_INFO */

/**/
/*==============================================================*/
create
table
USER_INFO (
NAME
varchar
(
100
)
not
null
,
CODE
varchar
(
20
)
not
null
,
ROLE
varchar
(
20
)
not
null
,
PASSWORD
varchar
(
20
)
not
null
,
CONTENT
varchar
(
100
)
null
,
constraint
PK_USER_INFO
primary
key
nonclustered
(CODE)
)
go
Linq To Sql 和NHibernate 差不多,说白了都是个O/R ,因此我们也需要一个类 对应数据表的映射文件。代码如下:
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
using
System.Data.Linq.Mapping;
using
System.Data.Linq;
namespace
Team.Model
...
{

/**//// <summary>
/// 登录用户信息
/// </summary>
[Table(Name="User_Info")]
public class UserInfo
...{

私有成员#region 私有成员
private string _name;
private string _code;
private string _role;
private string _password;
private string _content;
#endregion
[Column(Name = "Name", DbType = "varchar(100) Not Null")]
public string Name
...{
get
...{
return _name;
}
set
...{
_name = value;
}
}
[Column(Name = "Code", IsPrimaryKey = true, DbType = "varchar(20) Not Null")]
public string Code
...{
get
...{
return _code;
}
set
...{
_code = value;
}
}
[Column(Name = "Role", DbType = "varchar(20) Not NUll")]
public string Role
...{
get 
...{
return _role;
}
set
...{
_role = value;
}
}

[Column(Name = "Password", DbType = "varchar(20) Not NUll")]
public string Password
...{
get
...{
return _password;
}
set
...{
_password = value;
}
}
[Column(Name = "Content", DbType = "varchar(100) Null", CanBeNull = true)]
public string Content
...{
get

本文介绍了使用LINQ to SQL进行用户登录模块的实现。作者强调了虽然LINQ to SQL通过拖拉生成代码方便快捷,但在实际项目中可能带来维护难题。文中详细展示了数据访问层的设计,包括用户信息表的字段映射,接口和泛型类的编写,以及后台处理代码。最后,提到了开发环境和数据库选择。
最低0.47元/天 解锁文章
4058

被折叠的 条评论
为什么被折叠?



