EntityFramework帮助文档

1.EntityFramework把“ID”或者是“类名ID”形式翻译理解为主键

2.virtual:导航属性,包含了其它与之相关的属性,为了实现“慢加载”

3.定义外键是一对一的关系,集合是一对多的关系

4.DbContext:数据库上下文

5.DbSet:实体集对应一个表

6.避免了数据表名称复数化

   protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
        }

7.指定连接

<add name="SchoolContext" connectionString="Data Source=|DataDirectory|School.sdf" providerName="System.Data.SqlServerCe.4.0"/>

8.初始化数据库

在Application_Start中添加如下代码:

Database.SetInitializer<SchoolContext>(new SchoolInitializer());

9.一个实体可能处于以下几种状态中:

  • Added(新增)实体在数据库中不存在, SaveChanges将执行Insert命令。
  • Unchanged(原始状态)执行SaveChanges不触发任何行为—— 这通常是您从数据库中读取时候的状态。
  • Modified(已更改) 发生于某个实体的任意属性被修改之后,SaveChanges将执行更新命令。
  • Deleted(删除)实体被标记为“删除”状态,SaveChanges执行删除命令。
  • Detached(独立实体)此实体不属于任何数据上下文对象。

10.时间格式化

  [DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]

   此格式化字符串指定仅为此显示一个短日期(不带时间),ApplyFormatInEditmMode属性表示此属性同样被应用于编辑状态时的对文本框中内容也做此格式化处理

11.字符串长度

 [MaxLength(50, ErrorMessage = "First name cannot be longer than 50 characters.")] 

12.Column属性

[Column("FirstName")]

指定你的类和属性如何与实际数据表相对应

13.Required和Display属性

[Required(ErrorMessage = "Last name is required.")]
[Display(Name="Last Name")]

14.Key属性

主键

15. [Column(TypeName = "money")]

改变类型

16.慢模式

当实体第一次被读取的时候,相关的导航属性数据并未加载;当你第一次访问该导航属性的时候才使得导航属性的数据被加入。这会对数据库产生多个请求——一个是实体自身数据的加载,另外一个则是实体中那个导航属性相关数据每次的加载

 17.饥饿模式

当实体被读取时,相关属性数据同时被加载;这会产生一个对数据库的请求以便加载相关全部需要的数据,你可以通过Include的方法指定此模式

 18.显式加载

除了显式在代码中指定获取相关数据之外,此模式和慢加载差不多;当你访问导航模式的时候数据并不会立即加载,而是通过对象状态管理器(object state manager)获取该实体,并且通过Collection.Load加载集合对象,或者是Reference.Load的方式加载包含单个实体对象的实体

 

posted @ 2012-11-08 17:57  bradleydan  阅读(893)  评论(0)    收藏  举报