从微软的DBML文件中我们能学到什么(它告诉了我们什么是微软的重中之重)~一 DBContext的构造方法,方法的重载

简介:

一 DBContext的构造方法,方法的重载

二 DBContext实例中,表实体对象是怎么被加入的

三 分部类是否破坏了单一职责

四 分部方法从另一方面定义了类型的操作规范

五 LINQ实体类中对属性的赋值,变化前与变化后SendPropertyChanging与SendPropertyChanged

六 LINQTOSQL中为我们触发了SendPropertyChanging和SendPropertyChanged,它的真正用意是什么

七 为DBContext对象应该作为其它实体操作类型的基类,并为它提供统一的提交动作 

当我们建立一个linq to sql的DBML文件后,我们可以打开它的代码文件,看一个IDE为我们自动生成的东西,这个系列的课程,主要是讲它的这个代码文件,今天简单说一下,DataContext类的构造方法:

image

它的构造方法如下:

public TESTDataContext() : 
            base(global::Entity.Properties.Settings.Default.testConnectionString, mappingSource)
    {
        OnCreated();
    }
    
    public TESTDataContext(string connection) : 
            base(connection, mappingSource)
    {
        OnCreated();
    }

第一个方法,主要是没有参数时调用,这时,它默认使用生成器创建的链接串,不提倡使用这样文件,移植不方便。第二个方法,带有一个连接字符串的,它可以在配置文件中去设置,在程序移植时,修改配置文件即可。大家可能已经注意在,在方法中有一个mappingSourc变量,它其实是模块与数据库映射的源对象,在DBML中有这样的定义

private static System.Data.Linq.Mapping.MappingSource mappingSource = new AttributeMappingSource();
 

它是一个static 类型的MappingSource 的一个实体,就是说,它与实例无关,它只与当前DBContext相关,DBContext我们一般称为数据上下文。

MappingSource :表示映射信息的源
AttributeMappingSource:使用上下文中的属性创建映射模型的映射源
其中AttributeMappingSource是MappingSource的派生类,只负责一些特性信息的设置。

是数据库和LINQ的桥梁,除此之外,还可以使用XmlMappingSource创建模型。

本文转自博客园张占岭(仓储大叔)的博客,原文链接:从微软的DBML文件中我们能学到什么(它告诉了我们什么是微软的重中之重)~一 DBContext的构造方法,方法的重载,如需转载请自行联系原博主。

目录
相关文章
|
6月前
|
XML JSON Java
作为所有类的顶层父类,没想到Object的魔力如此之大!
在上一篇博文中我们提到了Java面向对象的四大特性,其中谈及“抽象”特性时做了一个引子,引出今天的主人公Object,作为所有类的顶级父类,Object被视为是James.Gosling的哲学思考,它高度概括了事务的自然与社会行为。
90 13
|
开发框架 缓存 安全
C#OOP之十三 组件、程序集与反射
C#OOP之十三 组件、程序集与反射
66 0
|
编译器 C++
C++ :类 和 对象 ※重点※(一)
C++ :类 和 对象 ※重点※
45 0
|
编译器 C++
C++ :类 和 对象 ※重点※(二)
C++ :类 和 对象 ※重点※(二)
74 0
|
Java 编译器 C++
C++ :类 和 对象 ※重点※(三)
C++ :类 和 对象 ※重点※(三)
82 0
2021年了,`IEnumerator`、`IEnumerable`接口还傻傻分不清楚?
IEnumerator、IEnumerable这两个接口单词相近、含义相关,傻傻分不清楚。 入行多年,一直没有系统性梳理这对李逵李鬼。
|
Java 数据库
再生与终结-初识属性覆盖与final | 带你学《Java面向对象编程》之四十一
本节将为读者介绍属性覆盖和final关键字相关内容,并为读者展示如何在Java中定义一个“常量”。
|
.NET
艾伟_转载:扩展方法 之 基本数据篇
  前一篇我列举了几个最常用到的基于Asp.Net的扩展方法,而这一篇基于基本数据的扩展方法理应不会逊一筹,因为它不局限于Asp.Net。何谓基本数据,这里直接摆定义:   C# 中有两种基本数据类型:值类型和引用类型。
977 0
|
网络协议 数据处理 数据格式
艾伟_转载:Socket开发探秘--基类及公共类的定义
Socket开发是属于通信底层的开发,.NET也提供了非常丰富的类来实现Socket的开发工作,本篇不是介绍这些基础类的操作,而是从一个大的架构方面阐述Socket的快速开发工作,本篇以TCP模式进行程序的开发介绍,以期达到抛砖引玉的目的。
630 0
|
开发者
适配器类(便利类)的由来:当你自己写的类中想用某个接口中个别方法的时候(注意:不是所有的方法),肿么办?
有的时候需要将接口和抽象类配合起来使用,这样可以为开发者提供相当的便利性,开发者觉得哪个方便就选用哪个。这样的抽象类称为便利类。此时,便利类并不需要实现接口的所有方法,可以留给继承它的子类去实现它们。 抽象父类提供给子类一个方法,主要是起规范作用,你不写父类这个方法也行。
1065 0