[Database(Name="AdventureWorks")] --> 映射数据库

[Table(Name="Customers")] --> 映射表

[Column(Name="CustomerID")] --> 映射字段

ColumnAttribute有以下内容:

Name     --> 列名

DbType   --> 数据列的类型

Storage  --> 类的暂存字段或变量(对应数据列字段)

IsPrimaryKey --> 是否主键

IsDbGenerated --> 是否自增

CanBeNull --> 是否允许null值

AutoSync --> 在Insert或Update操作执行后得到当前Column值

Never: 默认值,不为插入更新操作返回值

OnUpdate: 只返回更新操作的值

OnInsert: 只返回插入操作的值

Expression --> 数据计算数据列的值

IsVersion --> 指定当前列的版本或时间戳

UpdateCheck --> 在LINQ to SQL中对乐观并发操作控制

Always, Nerver, WhenChanged IsDiscriminator --> 鉴别列是否LINQ to SQL继承关系

RelationShips: LINQ to SQL定义一个AssociationAttribute属性表示关系,这个属性与EntitySet(TEntity)和EntityRef(TEntity)类型一起使用表示在数据库中外键关系

数据库中表的关系指的是主外键,LINQ to SQL 的主键是通过IsPrimaryKey来设置的,外键关系用AssociationAttribute决定

AssociationAttribute内容:

Name  --> 关系名

Storage  --> 暂时存储的字段或变量

IsUnique --> 外键是否有唯一约束

ThisKey  --> 在实体类的成员上标识,表示本成员的联合键值

otherkey --> 在多个目标实体上标识,表示与其他成员的联合键值

EntitySet类:设置外键的实体 与EntityRef结合-->EntityRef引用外键的实体

·一对多

1在M端:以EntityRef形式出现

M在1端:以EntitySet形式出现

·一对一 在各自的类中,均以EntityRef出现

·多对多:表的主键通常还有其他两个表的外键混合在表中

Linq to sql 对非侵入式和侵入式映射都支持

有哪几种Attribute呢?

TableAttribute

ColumnAttribute

AssociationAttribute

DatabaseAttribute

ProviderAttribute

FunctionAttribute

AutoSync  --> 自动同步 是一个枚举

public enum AutoSync {  Default,  Always,  Never,  OnInsert,  OnUpdate }

解释:在执行insert和update操作后,这个类的属性如何和数据库表对应的字段进行同步

AutoSync.Default  --> 列在数据库中有默认值,IsDbGenerated属性标记为true时则同步

AutoSync.Always  --> 总是进行同步

AutoSync.Never  --> 从不进行同步

AutoSync.OnInsert --> 在执行Insert操作后同步

AutoSync.OnUpdate --> 在更新的时候同步

在执行insert时,还会看到一个select代码,但我们并没有执行select操作,其实是AutoSync的原因,默认的时候IsDbGenerated为true的列是会被查出来返回的。

CanBeNull  --> 是否允许null

DbType  --> 创建表时,使用DbType指定列的数据类型

Expression --> 表示一个计算列,数据表的列通过计算获取的

IsDbGenerated --> 是否值在数据库中自动生成

IsPrimarykey --> 是否主键

IsVersion

UpdateCheck

Name  --> 属性名和列表不一致时指定

Storage  --> 赋值给私有字段而不是直接赋值给属性

Association:用来建立实体之间的关系

ThisKey  --> 用来标识和别的对象关联的键,如果没有指明就用本类属性上标识有IsPrimaryKey的了

OtherKey --> 用来定义关联的类的键,如果没有指定就用关联的那个类的标识列了

Name --> 指定关系名,是利用映射动态创建数据库的时候建立关系用的

SqlMetal生成的DBML文件信息的更多相关文章

  1. [转]Sublime Text 新建文件快速生成Html【头部信息】和【代码补全】、【汉化】

    Sublime Text 新建文件快速生成Html[头部信息]和[代码补全].[汉化] 真心越来越喜欢sublime 这个工具,高效便捷,渐渐离不了了! 安装package control简单的安装方 ...

  2. Asp.net中存储过程拖拽至dbml文件中,提示无法获得返回值

    Asp.net中存储过程拖拽至dbml文件中,提示无法获得返回值,去属性表中设置这时候会提示你去属性表中更改返回类型. 其实存储过程返回的也是一张表,只不过有时候存储过程有点复杂或者写法不规范的话不能 ...

  3. 通过HTML5的Drag and Drop生成拓扑图片Base64信息

    HTML5 原生的 Drag and Drop是很不错的功能,网上使用例子较多如 http://html5demos.com/drag ,但这些例子大部分没实际用途,本文将搞个有点使用价值的例子,通过 ...

  4. Bitmap文件格式+生成一个BMP文件

    Bitmap的文件格式: #define UINT16 unsigned short #define DWORD unsigned int #define WORD short #define LON ...

  5. 基于MVC4+EasyUI的Web开发框架经验总结(14)--自动生成图标样式文件和图标的选择操作

    在很多Web系统中,一般都可能提供一些图标的选择,方便配置按钮,菜单等界面元素的图标,从而是Web系统界面看起来更加美观和协调.但是在系统中一般内置的图标样式相对比较有限,而且硬编码写到样式表里面,这 ...

  6. vs2008生成的各种文件

    一.sln文件     .sln(Solution)解决方案文件,表示一个项目组,他通常包含一个项目中所有的工程文件信息.   二.suo文件     suo(Solution User Option ...

  7. vs 自动生成core dump文件

    一直以来觉着core dump这个东西很神奇,在初步学习的时候也没有个大方向,最近项目需要记录程序崩溃时的日志信息,因此在网上寻找相关的信息,此时core dump也成为了我重点关注的东西. 说说我的 ...

  8. 由动态库文件dll生成lib库文件(手动生成.def文件,然后使用lib命令编译,非常牛),同理可使用dll生成.a库文件

    本文基于OpenBlas的编译和安装,来说明如何从一个dll文件生成lib库文件. 参考OpenBlas的说明“Howto generate import library for MingW”,和Mi ...

  9. Qt之生成Window资源文件(.rc 文件)

    简述 qmake 可以随意地自动生成一个适当填充的 Windows 资源文件.本节主要讲解如何用 qmake 处理一个 Windows 资源文件,并将其链接到一个可执行应用程序(EXE)或动态链接库( ...

随机推荐

  1. androidstudio报错

    今天换一下IDE,结果上来就给我报错, androidstudio message:Error:java.lang.UnsupportedClassVersionError: com/android/ ...

  2. JSON总结(java篇)

    JSON总结(java篇一) JSON简介 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于 ...

  3. 从零开始学 Java - Windows 下安装 JDK

    关于未来 "我要死在火星.在我死去的时候能够想着人类能有一个美好的未来--有可持续的能源,同时能够殖民其他的星球来避免人类灭绝的最坏可能." 官网下载 直接打开官网:http:// ...

  4. linux下tomcat安全配置

    转:http://www.tuicool.com/articles/R7fQNfQ 0x00 删除默认目录 安装完tomcat后,删除 $CATALINA_HOME/webapps 下默认的所有目录文 ...

  5. Ionic + Cordova 跨平台移动开发环境配置

    1.下载安装JDK(根据各自系统选择32位或64位下载),安装完成之后需要做以下环境变量配置 在“系统变量”中,设置3象属性,JAVA_HOME,PATH,CLASSPATH(大小写无所谓),如果已经 ...

  6. HTML5中地图矢量化

    我们可以获取canvas对象为var c=document.getElementById("myCanvas");其应有js属性方法如下列举:1:绘制渲染对象, c.getCont ...

  7. JavaScript单元测试框架JsUnit基本介绍和使用

    JavaScript单元测试框架JsUnit基本介绍和使用 XUnit framework XUnit是一套标准化的独立于语言的概念和结构集合,用于编写和运行单元测试(Unit tests). 每一个 ...

  8. 在eclipse中把Tomcat 8删掉不能重建问题,启动Tomcat重置本地配置问题

    转载:http://blog.csdn.net/caiwenfeng_for_23/article/details/45480039 PS: 今天手贱,把Eclipse里的tomcat删掉了,然后发现 ...

  9. OC 单例模式

    OC 单例模式 概念 单例模式是一种常用的软件设计模式.在它的核心结构中只包含一个被称为单例的特殊类.通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约 ...

  10. AsyncHttpClient 源码分析

    上一篇文章从功能和用法上对AsyncHttpClient做了个大致介绍,今天我们和以往一样,从内部实现.原理的角度带领大家看看 其工作机制,以便加深理解.写程序越多,我发现每接触一个新东西,都会有强烈 ...