从微软的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创建模型。
posted @   张占岭  阅读(1952)  评论(0编辑  收藏  举报
编辑推荐:
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
阅读排行:
· 本地部署 DeepSeek:小白也能轻松搞定!
· 如何给本地部署的DeepSeek投喂数据,让他更懂你
· 从 Windows Forms 到微服务的经验教训
· 李飞飞的50美金比肩DeepSeek把CEO忽悠瘸了,倒霉的却是程序员
· 超详细,DeepSeek 接入PyCharm实现AI编程!(支持本地部署DeepSeek及官方Dee
点击右上角即可分享
微信分享提示