您的位置:首页 > 其它

Entity Framework4.0 (三)概述(EF4 的Code First方法)

2014-11-26 19:14 267 查看
Code First 颠覆了前两种对数据库的操作,他可以抛开数据库不管,直接编写实体类以及类之间的对应关系,可以自动创建数据库(Model First只能创建表),提供了数据迁移功能,在修改表的情况下 如增加了表字段,可以直接同步到数据库中,非常的方便

1. 首先创建实体类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel.DataAnnotations;

namespace HAO.Web.Entities
{
public class Menu
{
[Key]
public int ID { get; set; }
[MaxLength(200)]
public string menuname { get; set; }
[MaxLength(300)]
public string remark { get; set; }
public int parentid { get; set; }
public string isnode { get; set; }
[MaxLength(200)]
public string url { get; set; }
public int orderid { get; set; }
public int isShow { get; set; }
public int location { get; set; }
}
}


多了就不写了,大概就是这样子

2. 创建上下文类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Entity;
using HAO.Web.Entities;

namespace HAO.Web.website.Models
{
public class HawebEntities : DbContext
{

public DbSet<Menu> menus { get; set; }
public DbSet<News_Class> newsClass { get; set; }
public DbSet<News_Info> newsInfo { get; set; }
public DbSet<Role> role { get; set; }
public DbSet<User> user { get; set; }
public DbSet<Test> test { get; set; }
}
}


注意书写规范,我写的不太规范,变量应该是复数形式才对

3. 配置web.config数据库连接字符串

<connectionStrings>
<add name="HawebEntities" connectionString="Data Source=.\;Initial Catalog=haweb;Persist Security Info=True;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />
</connectionStrings>
这里要注意哦,name要与上下文类的名字一样,这样他才会识别,还有一种方法,如下

public HawebEntities()

: base("name=defaultConnection"){}

4. 编译一下程序,运行后会发现数据库已创建好

5. 最后说一个我遇到的问题

我用的数据库是SQL Server 2008 R2,创建好之后总是提示数据库连接字符串不正确,修改了之后,又说dbo.User不存在,总之就是没有连上数据库,非常的郁闷 也没有找到对应的解决方法,一气之下把数据库卸载了,废了好大劲才重新装上(SQL Server 确实不容易重装),然后就好了,很是郁闷。如果大家遇到我这样的问题,请重装数据库,哈哈

推荐一个男装店铺,点击
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: