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

本文详细解析DBContext的构造方法及其重载,表实体对象如何加入实例,探讨部分类是否违背单一职责原则,分部方法如何定义类型操作规范。深入探讨LINQ实体类中属性赋值前后SendPropertyChanging与SendPropertyChanged触发机制,以及LINQTOSQL如何通过这些机制实现数据同步。同时,阐述DBContext作为其他实体操作类型基类的重要性,以及如何统一提交动作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 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创建模型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值