使用 VS2012 + SQLServer 2008
采用 MVC4.0架构,数据库通过EF进行搭建。
通过在网上下载的例子,进行修改,得到自己的一些经验。。。
1、EF
EF的好处就是能够 Code First(个人理解,就是常规的方式是先在数据库中建立表项,然后进行数据库连接,数据处理操作)。但是例子里面没有提到如果通过EF自动创建数据库以及数据库中的表
其实上:
EF已经能够处理大部分常规数据操作,EF的架构基本上如下:
namespace Entity
{
[Description("学生管理")]
[PrimaryKey("ID")]
public class BaseStudent : BaseEntity
{
/// <summary>
/// 学生主键
/// </summary>
[Key]
[DisplayName("学生主键")]
public int StuID { get; set; }
/// <summary>
/// 学生姓名
/// </summary>
[DisplayName("姓名")]
public string StuName { get; set; }
/// <summary>
/// 性别
/// </summary>
[DisplayName("性别")]
public bool Sex { get; set; }
//#region 扩展操作
/ <summary>
/ 新增调用
/ </summary>
//public override void Create()
//{
// this.ID = int.Parse(ManageProvider.Provider.Current().UserId);
// this.StuName = ManageProvider.Provider.Current().UserName;
// this.Sex = ManageProvider.Provider.Current().IsSystem;
//}
/ <summary>
/ 编辑调用
/ </summary>
/ <param name="KeyValue"></param>
//public override void Modify(string KeyValue)
//{
// this.ModuleId = KeyValue;
// this.ModifyDate = DateTime.Now;
// this.ModifyUserId = ManageProvider.Provider.Current().UserId;
// this.ModifyUserName = ManageProvider.Provider.Current().UserName;
//}
// #endregion
//}
}
BaseEntity是基类,包含有Create Modify的虚方法。实际上,网上的例子 对于 Entity类,只需要指明 Key属性,这个属性的命名空间是
using System.ComponentModel.DataAnnotations;引用之后还需要在
.net类库中添加类库,否则会报找不到 Key属性的错误。。
2.需要一个继承
dbcontext的类,这个类底层通过linq能将数据库的操作实现,
比如
public class DataContext : DbContext
{
public DataContext()
: base("LeaRunFramework_SqlServer") //连接字符串
{
}
public DataContext(string connectstring)
: base(connectstring) //连接字符串
{
}
public DbSet<BaseStudent> Base_Student { get; set; }
}
LeaRunFramework_SqlServer是在Web.config文件中定义的sqlstring。。 一般是将 所有实体加入,比如 Base_Student 等
重点说一下 如何 让Entity自动生成数据库文件
DataContext context = new DataContext("Server=.;Initial Catalog=Test;User ID=sa;Password=123");
context.Base_Student.Create();
context.SaveChanges();
调用如上方法就能创建数据库,创建表...记得一定要 SaveChanges才能提交更改、
同样的使用 Context能够进行对象的查询
BaseStudent stu = context.Base_Student.Find(1);根据主键进行查询