Entity Framework: Get mapped table name from an entity

The extension methods

I have created one extension method for DbContext and other for ObjectContext:

public static class ContextExtensions
{
    public static string GetTableName<T>(this DbContext context) where T : class
    {
        ObjectContext objectContext = ((IObjectContextAdapter) context).ObjectContext;

        return objectContext.GetTableName<T>();
    }

    public static string GetTableName<T>(this ObjectContext context) where T : class
    {
        string sql = context.CreateObjectSet<T>().ToTraceString();
        Regex regex = new Regex("FROM (?<table>.*) AS");
        Match match = regex.Match(sql);

        string table = match.Groups["table"].Value;
        return table;
    }
}

Using the code

Getting the mapped table name for an entity named Album, using a ObjectContext object:

ObjectContext context = ....;
string table = context.GetTableName<Album>();

Or using a DbContext object:

DbContext context = ....;
string table = context.GetTableName<Album>();

 

原文 Entity Framework: Get mapped table name from an entity

 

时间: 2024-08-02 07:21:17

Entity Framework: Get mapped table name from an entity的相关文章

MySQL &amp;amp; Entity Framework Code First 数据表大小写的问

以前都是使用Linux平台下的MySQL,现在为了调试方便,在开发机上安装了MySQL的Windows版本5.6.10,在使用Entity Framework Code First生成数据库对象时,发现所有的数据表的表名都变成了小写字符,而字段的名称是混合大小写的,这个问题在Linux平台上没有出现过,于是着手弄明白这是肿么一回事. 经过网上搜索,找到这篇文章: Entity Framework with mysql, Table Capitalization issue between lin

如何解决Entity Framework查询匿名对象后的跨域访问

在Entity Framework中,可以使用lambda表达式进行对数据的查询,而且可以将查询结果直接映射为对象或者对象列表,这极大的提高的开发速度,并且使数据层的数据更加方便处理和传递.但是很多时候,我们不需要把整个表的字段都查出来,如果我们直接把整个数据实体查询出来,就极大的影响了性能,所以我们需要通过查询匿名对象或者已经定义的方式,对数据库进行查询: 1.实例使用的数据实体类: publicclass Category {publicint Id { get; set; }publics

Entity Framework CodeFirst数据迁移

原文:Entity Framework CodeFirst数据迁移 前言 紧接着前面一篇博文Entity Framework CodeFirst尝试. 我们知道无论是"Database First"还是"Model First"当模型发生改变了都可以通过Visual Studio设计视图进行更新,那么对于Code First如何更新已有的模型呢?今天我们简单介绍一下Entity Framework的数据迁移功能. Entity Framework配置  当我们对项目

Entity Framework 4.1 Code-First 学习笔记

CodeFirst提供了一种先从代码开始工作,并根据代码直接生成数据库的工作方式.Entity Framework 4.1在你的实体不派生自任何基类.不添加任何特性的时候正常的附加数据库.另外呢,实体的属性也可以添加一些标签,但这些标签不是必须的.下面是一个简单的示例: publicclass Order  { publicint OrderID { get; set; } publicstring OrderTitle { get; set; } publicstring CustomerNa

Entity Framework 6.1 学习系列1--概况、安装

原文:Entity Framework 6.1 学习系列1--概况.安装 Entity Framework:实体框架,看名字就知道是针对模型数据的.这是MS推出的一款ORM工具. 与NHibernate比较 1)Entity Framework封装性更好,增.删.改.查询更方便 2)  Entity Framework使用更方便的Linq to Entity查询,延迟加载(只有在需要时才加载,只加载需要的数据). 3)开发效率很高,使用DBFirst几乎不用编辑什么代码就能生成一个简单.通用的应

Entity Framework 简单增删改操作

原文:Entity Framework 简单增删改操作 前言  在 Entity Framework 简单查询操作 中主要是学习了在Entity Framework中的几种不同模式的查询操作,现在主要来学习一下简单的增加.删除.修改操作. 增加 在EF中添加操作一般有两种方式:一是直接创建对象,然后调用"DbSet"的"Add()"方法进行添加:二是调用数据库上下文的"Entry()"方法并设置对应的状态.无论使用哪种方式最终一定要调用"

Entity Framework “.NET技术”4.1 推荐英文教程

Entity Framework 4.1 相关文档实在少得可怜,在网上找到一个不错的系列文章,与大家分享一下. 作者:Vincent-Philippe Lauzon 感谢冠军的翻译! · Entity Framework 4.1: Basics (1) [译文]Entity Framework 4.1 之一 : 基础 · Entity Framework 4.1: Override conventions (2) [译文]Entity Framework 4.1 之二 : 覆盖默认的约定 &mi

一起谈.NET技术,Entity Framework 4.1 推荐英文教程

Entity Framework 4.1 相关文档实在少得可怜,在网上找到一个不错的系列文章,与大家分享一下. 作者:Vincent-Philippe Lauzon 感谢冠军的翻译! · Entity Framework 4.1: Basics (1) [译文]Entity Framework 4.1 之一 : 基础 · Entity Framework 4.1: Override conventions (2) [译文]Entity Framework 4.1 之二 : 覆盖默认的约定 · E

学习Entity Framework 中的Code First

这是上周就写好的文章是在公司浩哥的建议下写的本来是部门里面分享求创新用的这里贴出来分享给大家.   最近在对MVC的学习过程中接触到了Code First这种新的设计模式感觉很新颖并且也体验到了这种方式所带来的便利.这里将我的一些理解分享出来. 需要了解的概念 POCO POCOPlain Old CLR Object的概念是从java的POJO借用而来而两者的含义是一致的不同的仅仅是使用的语言不一样.所以POCO的解释就是"Plain Old C# Object".POJO的内在含义