01 2013 档案

摘要:控制数据库的位置默认情况下,数据库是创建在localhost\SQLEXPRESS服务器上,并且默认的数据库名为命名空间+context类名,例如我们前面的BreakAway.BreakAwayContext。有几种方法可以改变这种默认约定。利用配置文件在配置文件中新加一个连接字符串 <connectionStrings> <add name="BreakAwayContext" providerName="System.Data.SqlClient" connectionString="Server=.\SQLEXPRESS 阅读全文
posted @ 2013-01-28 10:49 Gyoung 阅读(27728) 评论(11) 推荐(44) 编辑
摘要:多个实体映射到一张表Code First允许将多个实体映射到同一张表上,实体必须遵循如下规则:实体必须是一对一关系实体必须共享一个公共键观察下面两个实体: public class Person { [Key] public int PersonId { get; set; } public int SocialSecurityNumber { get; set; } public string FirstName { get; set; } public string LastName { get; set; ... 阅读全文
posted @ 2013-01-25 09:33 Gyoung 阅读(29143) 评论(36) 推荐(37) 编辑
摘要:使用Data Annotations:如果我们要到一对主从表增加级联删除,则要在主表中的引用属性上增加Required关键字,如: public class Destination { public int DestinationId { get; set; } public string Name { get; set; } public string Country { get; set; } public string Description { get; set; } public byte[] Photo {... 阅读全文
posted @ 2013-01-22 18:53 Gyoung 阅读(7568) 评论(4) 推荐(9) 编辑
摘要:一对多关系项目中最常用到的就是一对多关系了。Code First对一对多关系也有着很好的支持。很多情况下我们都不需要特意的去配置,Code First就能通过一些引用属性、导航属性等检测到模型之间的关系,自动为我们生成外键。观察下面的类:View Code public class Destination { public int DestinationId { get; set; } public string Name { get; set; } public string Country { get; set; } publi... 阅读全文
posted @ 2013-01-22 11:34 Gyoung 阅读(22084) 评论(28) 推荐(64) 编辑
摘要:什么是并发?并发分悲观并发和乐观并发。悲观并发:比如有两个用户A,B,同时登录系统修改一个文档,如果A先进入修改,则系统会把该文档锁住,B就没办法打开了,只有等A修改完,完全退出的时候B才能进入修改。乐观并发:同上面的例子,A,B两个用户同时登录,如果A先进入修改紧跟着B也进入了。A修改文档的同时B也在修改。如果在A保存之后B再保存他的修改,此时系统检测到数据库中文档记录与B刚进入时不一致,B保存时会抛出异常,修改失败。EF中如何控制并发?Entity Framework不支持悲观并发,只支持乐观并发。如果要对某一个表做并发处理,就在该表中加一条Timestamp类型的字段。注意,一张表中只能 阅读全文
posted @ 2013-01-18 17:11 Gyoung 阅读(31803) 评论(53) 推荐(111) 编辑
摘要:在EF中,我们建立数据模型的时候,可以给属性配置数据生成选项DatabaseGenerated,它后有三个枚举值:Identity、None和Computed。Identity:自增长None:不处理Computed:表示这一列是计算列。在EF中,如果主键是int类型,Code First生成数据库的时候会自动设置该列为自增长。但如果主键是Guid类型,我们就要手动的去设置了。对于下面的模型,如果我们没有设置自增长,数据库中会以0来填充 public class Person { [Key] public Guid SocialSecurityNumber {... 阅读全文
posted @ 2013-01-18 10:56 Gyoung 阅读(23613) 评论(8) 推荐(23) 编辑
摘要:为了说明什么是复杂属性,先举一个例子。 public class CompanyAddress { public int ID { get; set; } public string CompanyName { get; set; } public string StreetAddress { get; set; } public string City { get; set; } public string State { get; set; } public string ZipCode { get;... 阅读全文
posted @ 2013-01-17 16:25 Gyoung 阅读(8417) 评论(5) 推荐(22) 编辑
摘要:要更改EF中的默认配置有两个方法,一个是用Data Annotations(在命名空间System.ComponentModel.DataAnnotations;),直接作用于类的属性上面;还有一个就是Fluent API,通过新增相应的配置类来覆盖默认配置。现在我们用这两个来对比了解EF中的约定配置。主键:KEYData Annotations:通过Key关键字来标识一个主键[Key]public int DestinationId { get; set; }Fluent API:public class BreakAwayContext : DbContext { pu... 阅读全文
posted @ 2013-01-17 15:12 Gyoung 阅读(43418) 评论(9) 推荐(48) 编辑
摘要:Code First是Entity Framework提供的一种新的编程模型。通过Code First我们可以在还没有建立数据库的情况下就开始编码,然后通过代码来生成数据库。下面通过一个简单的示例来了解。建立一个控制台项目。通过Nuget来获取Entity Framework。增加两个模型类: public class Destination { public int DestinationId { get; set; } public string Name { get; set; } public string Country { get; ... 阅读全文
posted @ 2013-01-17 09:47 Gyoung 阅读(50376) 评论(18) 推荐(43) 编辑

点击右上角即可分享
微信分享提示