Code First 中的 TPH TPT TPC
2024-08-21 04:31:23
public class Blog
{
public int Id { get; set; }
public DateTime Creationdate { get; set; }
public string ShortDescription { get; set; }
public string Title { get; set; }
public string AboutTheAuthor { get; set; }
} public class PictureBlog : Blog
{
public string PicDescription { get; set; }
} public class VideoBlog : Blog
{
public string VideoDescription { get; set; }
}
配置 TPH 形成的数据表(一张表存放基类和子类的所有列,特定列区分):
默认配置
其中BlogType 可以修改的,如改成From,则这样:
this.Map<Blog>(l => { l.Requires("From").HasValue("Blog"); });
this.Map<Picture>(l => { l.Requires("From").HasValue("Pic"); }); this.Map<Video>(l => { l.Requires("From").HasValue("Video"); });
配置 TPT 形成的数据表(父类和子类在不同的表里,有主外键关系):
this.Map(m => {
m.ToTable("Blogs");
}).Map<PictureBlog>(m =>{
m.ToTable("PictureBlogs");
}).Map<VideoBlog>(m => {
m.ToTable("VideoBlogs");
});
配置 TPC 形成的数据表(子类包含父类的所有属性,各自独立):
this.Map(m => {
m.ToTable("Blogs");
}).Map<PictureBlog>(m =>{
m.ToTable("PictureBlogs");
m.MapInheritedProperties();
}).Map<VideoBlog>(m => {
m.ToTable("VideoBlogs");
m.MapInheritedProperties();
});
最新文章
- Servlet作业2-将表单提交的商品信息输出到页面中
- springmvc源码分析
- VS2010 ";error MSB8011” 解决方法
- jsonObject jsonArray jsonTokener jsonStringer,json解析以及http请求获取josn数据并加以解析
- android学习笔记37——Menu资源
- java学习笔记(4):内存管理
- 互斥体与互锁 <;第五篇>;
- VARCHAR2(N CHAR)与VARCHAR2(N)的区别[Oracle基础]
- (中等) POJ 2528 Mayor&#39;s posters , 离散+线段树。
- 20145237 《Java程序设计》第2周学习总结
- Spark缓存策略
- UIImageView自适应图片大小
- Java Hash集合的equals()与hashCode() 方法
- arch 安装准备--包管理的使用pacman
- 读书笔记之Linux系统编程与深入理解Linux内核
- SQL语句简单笔记
- 多线程——继承Thread类实现一个多线程
- 网站精准查询IP
- 用Maven构建Mahout项目
- 初探FFT(快速傅里叶变换)