框架中提供了多种数据注释以便可以全面的描述数据库结构特性。

自增列

可以使用注释声明指定列是数据库自增列,同时能指定自增的起始及步长。

public class Blog
{

    [Identity(, )]
    public int BlogId { get; set; }

    public string Url { get; set; }
}

表映射

表映射标识该从数据库中哪些表数据查询或保存数据。

[Table("blogs")]
public class Blog
{
    public int BlogId { get; set; }
    public string Url { get; set; }
}

列映射

列映射标识应该从数据库的哪些列查询或保存数据。

public class Blog
{
    [Column("blog_id")]
    public int BlogId { get; set; }
    public string Url { get; set; }
}

数据类型

数据类型是指属性映射到的列的数据库特定类型。

public class Blog
{
    public int BlogId { get; set; }
    [Column(nameof(Url), "varchar(200)")]
    public string Url { get; set; }
    [Column(nameof(Rating), "decimal(5, 2)")]
    public decimal Rating { get; set; }
}

计算列

计算列是其值在数据库中计算的列。计算列可以使用表中的其他列来计算其值。

public class Person
{
    public int PersonId { get; set; }

    public string FirstName { get; set; }

    public string LastName { get; set; }

    [Computed("[LastName] + ', ' + [FirstName]")]
    public string DisplayName { get; set; }
}

默认值

列的默认值是插入新行但未为该列指定值时将插入的值。

public class Blog
{
    public int BlogId { get; set; }
    public string Url { get; set; }
    [Default(")]
    public int Rating { get; set; }
}

长度

配置长度向数据存储提供关于用于给定属性的适当数据类型的提示。最大长度仅适用于数组数据类型,例如byte[]

public class Blog
{
    public int BlogId { get; set; }
    [Length(, false)]
    public byte[] Image { get; set; }
}

字符串

用于配置字符串的类型信息。

public class Blog
{
    public int BlogId { get; set; }
    [String(, false)]
    public string Url { get; set; }
}

精度

用于配置存精度信息的数据类型列,例如decimal。

public class Product
{
    public int Id { get; set; }
    [Precision(,)]
    public decimal Price { get; set; }
}

Mego(06) - 关系数据库建模的更多相关文章

  1. asp.net core系列 29 EF模型配置(查询类型,关系数据库建模)

    一.查询类型 此功能是EF Core 2.1中的新功能. EF Core除了实体类型之外,EF Core模型还可以包含查询类型,这些查询类型是针对“未映射到实体类型”的数据获取.比如视图,或只读数据表 ...

  2. Mego(08) - 高级建模

    对于模型建立Mego还提供了一些高级主题 数据库函数映射 我们可以将现有的CLR方法映射到指定数据库的标题函数上,如下所示 public class OrderManageEntities : DbC ...

  3. (23)ASP.NET Core EF关系数据库建模

    1.简介 一般而言,本部分中的配置适用于关系数据库.安装关系数据库提供程序时,此处显示的变为可用扩展方法(原因在于共享的Microsoft.EntityFrameworkCore.Relational ...

  4. Mego(03) - ORM框架的新选择

    前言 从之前的两遍文章可以看出ORM的现状. Mego(01) - NET中主流ORM框架性能对比 Mego(02) - NET主流ORM框架分析 首先我们先谈下一个我们希望的ORM框架是什么样子的: ...

  5. 大数据架构师NoSQL建模技术

    从数据建模的角度对NoSQL家族系统做了比较简单的比较,并简要介绍几种常见建模技术. 1.前言 为了适应大数据应用场景的要求,Hadoop以及NoSQL等与传统企业平台完全不同的新兴架构迅速地崛起.而 ...

  6. 大数据架构师必读的NoSQL建模技术

    大数据架构师必读的NoSQL建模技术 从数据建模的角度对NoSQL家族系统做了比较简单的比较,并简要介绍几种常见建模技术. 1.前言 为了适应大数据应用场景的要求,Hadoop以及NoSQL等与传统企 ...

  7. Web应用 布局

    asp.net core系列 44 Web应用 布局 一.概述 MVC的视图与Razor页面经常共享视觉和程序元素,通过使用布局来完成,布局还可减少重复代码.本章演示了以下内容的操作方法:(1)使用通 ...

  8. DDD/CQRS模式,微服务,容器

    DDD/CQRS模式,微服务,容器 https://docs.microsoft.com/zh-cn/previous-versions/msp-n-p/ee658109(v=pandp.10) We ...

  9. 【目录】asp.net core系列篇

    随笔分类 - asp.net core系列篇 asp.net core系列 68 Filter管道过滤器 摘要: 一.概述 本篇详细了解一下asp.net core filters,filter叫&q ...

随机推荐

  1. IDEA2017版本打可运行jar包并运行

    一.打JAR包 JAR:From modules with dependencies  将依赖一起打包 一般依赖放在与xx.jar同级的libs文件夹中 敲黑板,下图第一个框是输出jar包的位置,第二 ...

  2. static与final的区别

    final被修饰的变量为常量一旦赋值不能修改,被修改的方法为最终方法不能被重写,被修饰的类是最终类,不能被继承static被修饰的变量和方法,为该整个类及其类的对象所共享,一个类或对象修改了被定义的类 ...

  3. Cocos2d-x 集成openinstall(Android)

    目的: 1. Cocos2d-x集成openinstall sdk? 有这么一个场景,甲给乙分享了链接,乙使用并下载APP,推荐者甲和乙的关系这个思路是怎样的? 你首先想到的也许会说,那当然就是给对方 ...

  4. Django用户登录与注册系统

    一.创建项目 1.1.创建项目和app python manage.py startproject mysite_login python manage.py startapp login 1.2.设 ...

  5. Linux shell 脚本(三)

    转载请标明出处:  http://blog.csdn.net/zwto1/article/details/45111547:  本文出自:[zhang_way的博客专栏] 九.使用case 分支 语法 ...

  6. 【python学习笔记】10.充电时刻

    [python学习笔记]10.充电时刻 任何python都可以作为模块倒入 *.pyc:平台无关的经过编译的的python文件, 模块在第一次导入到程序中时被执行,包括定义类,函数,变量,执行语句 可 ...

  7. RouterPassView——路由器密码查看工具

    大多数现代路由器都可以让您备份一个文件路由器的配置文件,然后在需要的时候从文件中恢复配置.路由器的备份文件通常包含了像您的ISP的用户名重要数据/密码,路由器的登录密码,无线网络的KEY. 如果你忘记 ...

  8. nslookup命令的安装及使用

    windows中是自带的,不用安装,直接在cmd窗口直接使用 Linux中需要安装: yum -y install bind-utils nslookup www.baidu.com [root@bo ...

  9. 页面内部DIV让点击外部DIV 事件不发生(阻止冒泡事件)

    如标题的情况,经常发生,尤其是在一些弹出框上面之类的. <script> function zuzhimaopao(){ e.stopPropagation(); } </scrip ...

  10. Android GC Log

    最近在研究Android内存垃圾回收的内容,遇到一些自己之前不知道的技巧和方法.现在分享一种简单的在Logcat中可以看到垃圾回收状态的方法.经常关注Logcat日志的童鞋偶尔会看到一条类似于以下形式 ...