ADO.NET Entity Framework Feature 中的 CodeFirst 创建数据库和实体类


以前在使用ADO.NET Entity Framework开发时,碰到过一个问题,Model和数据层不能完全分离。之后在ADO.NET Entity Framework 4中又有了ModelFirst模式,现在在ADO.NET Entity Framework Feature中又增加了CodeFirst模式。本文介绍通过Model代码生成数据库及从数据库生成Model代码。

从代码生成数据库

既然是CodeFirst,当然需要Code完成后能自动生成数据库了。

1.添加对EntityFramework和System.Data.Entity的引用。

2.写一个User类和Group类,User和Group是多对一的关系

用户实体类
1///<summary> 2///用户实体类 3///</summary> 4publicclassUser 5{ 6///<summary> 7///ID 8///</summary> 9publicGuidID{get;set;} 10 11///<summary> 12///名字 13///</summary> 14publicstringName{get;set;} 15 16///<summary> 17///用户组别 18///</summary> 19publicvirtualGroupGroup{get;set;} 20}

用户组实体类
1///<summary> 2///用户组实体类 3///</summary> 4publicclassGroup 5{ 6///<summary> 7///ID 8///</summary> 9publicGuidID{get;set;} 10 11///<summary> 12///组名 13///</summary> 14publicstringName{get;set;} 15 16///<summary> 17///用户集合 18///</summary> 19publicvirtualICollection<User>Users{get;set;} 20}

3.写一个继承自DBContext的类

DataContext
1///<summary> 2///数据上下文 3///</summary> 4publicclassDataContext:DbContext 5{ 6///<summary> 7///用户 8///</summary> 9publicDbSet<User>Users{get;set;} 10 11///<summary> 12///用户组 13///</summary> 14publicDbSet<Group>Groups{get;set;} 15}

这里我们还可以重写OnModelCreating方法来对数据库的生成做一些设置,如某些列的最大长度等信息。

4.检查数据库连接字符串

默认的数据库连接字符串将连接到.\SQLEXPRESS实例,这个是可以修改的。一个修改方法是在DataContext的构造函数中修改。如:

1///<summary> 2///构造函数 3///</summary> 4publicDataContext() 5:base("EFCodeFirstStartConnectionString") 6{ 7}

其中EFCodeFirstStartConnectionString是连接字符串的名字

5.当你对数据库执行操作时,如果它不存在,就会按照Model的代码来创建一个。也可以显式地用代码来创建。

1DbContext.Database.CreateIfNotExists();

1DbContext.Database.Create();

从数据库生成代码

如果已经有数据库了也不必完全手写Model代码。

1.新建一个ADO.NET Entity Data Model

2.选择Generate from database

3.选择需要生成代码的表

4.右键单击emdx文件并选择Add Code Generation Item

5.在弹出的Add New Item对话框中选择ADO.NET DbContext Generator

6.在Solution Explorer中可以找到模版文件和生成的代码文件

示例下载(Visual Studio 2010)

优质内容筛选与推荐>>
1、搭建R语言服务器RApache
2、mass Framework css模块 v4
3、文件下载
4、【Linux】su - user有问题 su user 可用问题
5、C# 调用WebApi


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn