ef 吐糟
方法:从dbcontext到objectcontext
DbContext及其相关的API是EF4.1中一大新特性。简单说,DbContext就是之前EF的核心类ObjectContext的抽象封装。如果用.NET Reflector看一下DbContext的内部实现,不难发现其内部有一私有成员_internalContext,它属于InternalContext这一Internal的类。DbContext内部的许多函数就是通过InternalContext.ObjectContext属性来得到其内部封装的ObjectContext类并调用其方法的。由于_internalContext是私有成员,要得到它的值需动用反射,好像太劳师动众了。今天为大家介绍十分方便的一个小技巧来得到DbContext内部封装的ObjectContext。
DbContext实现两个接口:IDisposable和IObjectContextAdapter。前者的博大精深在本文就不提及了。IObjectContextAdapter按照MSDN文档,就是为了让我们方便得到DbContext内部封装的ObjectContext而设计的。所以很简单:
转换一下DbContext的接口类型就行了!
引自 http://www.cnblogs.com/LingzhiSun/archive/2011/03/30/EF_Trick1.html
方法:从 objectcontext获取字段maxLength
public static int? GetMaxLength(this EntityObject entite, string nomPropriete)
{
int? result = null;
using (XEntities contexte = XEntities.GetCurrentContext())
{
var queryResult = from meta in contexte.MetadataWorkspace.GetItems(DataSpace.CSpace)
.Where(m => m.BuiltInTypeKind == BuiltInTypeKind.EntityType)
from p in (meta as EntityType).Properties
.Where(p => p.DeclaringType.Name == entite.GetType().Name
&& p.Name == nomPropriete
&& p.TypeUsage.EdmType.Name == "String")
select p.TypeUsage.Facets["MaxLength"].Value;
if (queryResult.Count() > 0)
{
result = Convert.ToInt32(queryResult.First());
}
}
return result;
}
引自 http://stackoverflow.com/questions/748939/field-max-length-in-entity-framework
以上均亲测可以,ef6 。
还是要忘恩负义吐槽一句
SELECT * FROM sys.columns WHERE object_id = object_id('mytable') AND name = 'mycolumn'
这样即可。
不支持就是不支持嘛,这么复杂的支持,与不支持何异。
最新文章
- 03 通过Button打开另一个的frm
- 面试问题-使用Java线程做数学运算
- 不安装Oracle客户端使用PLSQL
- hdu 2065
- PHP mcrypt加密扩展使用总结
- Samba实现Linux与Window文件的传输
- 187. Repeated DNA Sequences
- [Raobin] Ext.net在页面中以窗体的形式打开另外的页面
- oracle常用自定义函数集合
- 面试题-Java基础-线程部分
- 利用PN532读取二代证UID
- Swift -欢迎界面1页, 延长启动图片的显示时间(LaunchImage)
- 关于 Ubuntu Linux 16.04中文版的 root 权限及桌面登录问题
- SQL优化总结之二
- 使用boost.python封装C++库
- 10个最佳 Javascript+HTML5 演示文稿框架
- Spring SpringBoot和SpringCloud的关系
- 基于单片机的Wifi温度湿度测量仪
- JVM调优命令-jstat
- spring boot 学习(五)SpringBoot+MyBatis(XML)+Druid
热门文章
- 关于Q-LEARNING的优化
- BF字符串匹配算法
- Samsung_tiny4412(驱动笔记06)----list_head,proc file system,GPIO,ioremap
- 解决cocos2dx调用removeFromParent后报错问题
- C#语法-虚方法详解 Virtual 虚函数
- Sublime Text3:插件+快捷键+环境变量设置+C/C++编译环境
- putty 、xshell的使用 和 putty 、xshell、 shell 间免密登陆
- Hadoop权威指南
- ubuntu设置静态ip后不能上网
- Redis和MySQL的结合方案