随笔分类 - C#
C#语言开发技术
摘要:C# 通过反射来动态创建泛型类型与创建普通类型的区别在于:泛型参数的处理创建泛型类型存在三种情况:第一种:知道泛型类型,但需要动态指定泛型参数;第二种:知道泛型参数,但需要动态创建指定参数的泛型类型;第三种:泛型类型与泛型参数均都不直接指定,需要动态创建指定参数的泛型类型;具体的方法说明详见文俊IT...
阅读全文
摘要:首先看一下采用MODEL FIRST的方式设计的实体模型对象关系图:注意:EntityOne中有导航属性:EntityTwo在如下代码中的几种情况进行新增操作,均会报错,新增都不会成功: static void Main(string[] args) { Mode...
阅读全文
摘要:之前发表过一篇文章题为《关于Entity Framework中的Attached报错的完美解决方案》,那篇文章确实能解决单个实体在进行更新、删除时Attached的报错,注意我这里说的单个实体,指的是要更新或删除的实体不包含其它实体(比如导航属性就包含其它实体),也就是简单POCO对象;但如果不是呢...
阅读全文
摘要:我们在使用Entity Framework进行CRUD时,为了提升查询效率,一般均会启动NoTracking,即不追踪变化,设置代码如下://这是DB First模式下设置方法:aTestEntities db = new aTestEntities();db.Companies.MergeOpti...
阅读全文
摘要:一、首先了解下Entity Framework 自动关联查询:Entity Framework 自动关联查询,有三种方法:Lazy Loading(延迟加载),Eager Loading(预先加载),Explicit Loading(显式加载),其中Lazy Loading和Explicit Loa...
阅读全文
摘要:从发表第一篇文章到最后一篇文章,时间间隔有整整一个月,虽只有5篇文章,但每一篇文章都是我吸收《LEARNING HARD C#学习笔记》这本书的内容要点及网上各位大牛们的经验,没有半点废话,值得新手或中级程序员阅读,孔子曰:温故而知新,可以为师矣,写这个系列文章的目的除了表达对LEARNING HA...
阅读全文
摘要:本篇文章主要是总结异步编程的知识点,也是本系列的最后一篇文章,每一个知识点我都有写出示例代码,方便大家理解,若发现有误或不足之处还请指出,由于书中作者对此知识点讲解过于简单,所以在写这篇文章时本人参考与学习了网上许多大牛们的经验,在此感谢那些愿意分享的人们,谢谢! 二十三.异步编程 APM(异步编程
阅读全文
摘要:以下是NPOI导入导出EXCEL通用类,是在别人的代码上进行优化的,兼容xls与xlsx文件格式,供参考,可直接使用在WinForm项目中,由于XSSFWorkbook类型的Write方法限制,Write完成后就自动关闭流数据,所以无法很好的支持的Web模式,网上目前也未找到好的解决方案,大家如果有...
阅读全文
摘要:又是一个周末,刚好有时间,又继续复习与总结了,希望能让大家受益,不足之处欢迎指正,谢谢!十八. Lambda1.Lambda表达式:匿名方法的另一种表现形式,它可以包含表达式和语句,且用于创建委托或转换为表达式树,定义语法:(形参列表)=>{方法体}; 单个参数时,可以省略括号2.Lambda表达式...
阅读全文
摘要:我们一般获取某个类型或对象的属性信息均采用以下几种方法:一、通过类型来获取属性信息var p= typeof(People).GetProperty("Age");//获取指定属性var ps = typeof(People).GetProperties();//获取类型的所有属性二、通过实例来获取...
阅读全文
摘要:今天在进行代码测试时发现,尝试在一个方法中定义一个委托,注意是定义一个委托,而不是声明一个委托变量,在编写的时候没有报错,VS也能智能提示,但在编译时却报语法不完整,缺少方括号,但实际查询并没有缺少,想不通原因,将委托定义移到类中,报错消失,编译成功了。先看一下报错的源码:(实际上不只委托类型,所有...
阅读全文
摘要:最近工作较忙,手上有几个项目等着我独立开发设计,所以平时工作日的时候没有太多时间,下班累了就不想动,也就周末有点时间,今天我花了一个下午的时间来继续总结与整理书中要点,在整理的过程中,发现了书中的一些不足,我在以下的博文中都有说明,大家如果有这本书的可以对照着知识点及书本相结合的方式来看,没有这本本...
阅读全文
摘要:今天继续分享我的阅读《LEARNING HARD C#学习笔记》知识点总结与摘要二,仍然是基础知识,但可温故而知新。七.面向对象三大基本特性:封装:把客观事物封装成类,并隐藏类的内部实现细节,仅开放相关的访问属性、方法等继承:通过继承可以复用父类的代码;多态:1.允许将子对象赋值给父对象,2.同方法...
阅读全文
摘要:本人有幸在Learning Hard举行的整点抢书活动《Learninghard C#学习笔记》回馈网友,免费送书5本中免费获得了一本《LEARNING HARD C#学习笔记》,我(梦在旅途)虽然从事.NET开发多年,但一直都没有能好好的系统学习,特别是C#5.0的知识,现如今有幸得到这本书,可以...
阅读全文
摘要:在设计数据表时,如果将某些列设置为关联其它表的外键,那么如果对其进行增加、修改操作时,其关联表若没有相匹配的记录则报错,或者在对其关联表进行删除时,也会报错,这就是外键约束的作用,当然除了外键还有许多约束,在此暂不讨论,本篇文章主要讲的是,如何判断是否为SQL的引用约束异常,从而能够更好的将SQL复...
阅读全文
摘要:第一种方法:采用MS现有的ConfigurationManager来进行读写using System.Configuration;namespace Zwj.TEMS.Common{ public abstract class ConfigHelper { private ...
阅读全文
摘要:我之前就写过一篇《实现UniqueAttribute唯一性约束》,虽然实现了通过调用IsValid方法可以进行唯一性验证,但有一个缺点,那就是耦合度过高,原因是里面的DB上下文对象是直接写在里面的,如下:public override Boolean IsValid(Object value) ...
阅读全文
摘要:using System;
using System.ComponentModel.DataAnnotations;
using System.Data.Entity;
namespace Zwj.TEMS.Base
{
///
/// 唯一性标识
///
[AttributeUsage(AttributeTargets.Property, AllowMultiple = false, Inherited = true)]
public class UniqueAttribute : ValidationAttribute
{
protected string tableName;
protected string filedName;
public UniqueAttribute(string tableName, string filedName)
{
this.tab
阅读全文
摘要:对于Client来说,它实际上不能和Service进行直接交互,它只能通过客户端创建的Proxy来间接地和Service进行交互,然而真正的调用而是通过服务实例来进行的。我们把通过Client的调用来创建最终的服务实例过程称作激活,在.NET Remoting中包括Singleton模式、SingleCall模式和客户端激活方式,WCF中也有类似的服务激活方式:单调服务(PerCall)、会话服务(PerSession)和单例服务(Singleton)。
阅读全文
摘要:一、服务契约(包括回调契约)通过指定不同的OperationContract.Name来实现重载方法,当然代码部份还是必需符合C#的重载要求,即相同方法名称,不同的参数个数或参数类型 namespace Contract { [ServiceContract(Name = "HellworldService", Namespace = "http://www.zuowenjun.cn")] public interface IHelloWorld { [OperationContract(Name = "GetHelloWorldWithoutParam")] string GetHelloWorld(); [OperationContract(Name = "GetHelloWorldWithParam")] string GetHelloWorld(string name); }
阅读全文