首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Entity Framework DataAnnotations

但是在EF中它又可以对映射关系进行控制,相比较Fluent API使用起来要简单一些。...{ get; set; } } public Name Name { get; set; }  对于实体关系对应的数据表关系,无非“0:1,1:1,0:N,1:N,N:N”这几种,可以使用导航属性中的数据类型来表示...,0…1端使用单实体类型表 示,N端使ICollection集合类型表示。...对于单实体端,默认是可为空的,即为0关系,如果要设置为1关系,要使用 [Required]标签来进行标记。但对于一对一中的关系主体与依赖对象确无法做更细节的控制。...注意:DataAnnotations可以同时在同一个类后者属性上使用多个标记属性,上面的例子中对于每个类或属性只使用了一个单独的标记属性是为了说明起来更加简单;另外声明的例子中同时使用“ConcurrencyCheck

83530

Entity Framework 继承映射

继承是面向对象开发时经常用到的,但是SQL Server 数据库不具备继承,那么怎么办能?...我们可以利用如下三种方法: TPH(Table per Hierachy):对SQL架构进行非规范化来表示多态,使用鉴别列对类型区分; TPT(Table per Type):用外键表示继承关系 TPC...定义TPT继承策略需要在上下文中进行如下配置: modelBuilder.Entity().ToTable("Person"); modelBuilder.Entity()...("Person"); }); modelBuilder.Entity().Map(p=>{ p.MapInheritedProperties(); p.ToTable("Woman...下面总结一下以上三种策略的使用场景 策略 场景 TPC 不需要多表关联查询或者很少查询父类数据,并且没有与父类关联的类 TPH 需要多表关联查询,且子类的属性较少 TPT 需要多表关联查询,且子类的属性很多

78410

Entity Framework 实体状态

我们通过前面的学习,知道EF通过上下位负责跟踪实体的状态,实体状态的位置是在命名空间 System.Dat.Entity 里的 EntityState,具体状态有如下5种: Detached Unchanged...我们只需要在查询的时候使用 AsNoTracking() 来世的查询出来的对象是 Detached 状态。...如果要将实体状态标记为该状态,可以使用两种方法: 1.间接标记,通过 Add 方法调用,示例代码如下: using (var db = new EFDbContext()) { var user =...12 } db.Entry(user).State = EntityState.Added; db.SaveChanges(); } 三、Deleted 如果需要将实体从数据库中删除,可以使用...和 Added 状态一样,删除实体可以使用两种方法: 1.通过调用 Remove 或者是 RemoveRange 方法,示例代码如下: using (var db = new EFDbContext()

83910
领券